2016-11-08 7 views
1

У меня есть версия 9.1.131.0.Devart dotConnect Express для Oracle Connection с именем службы

Я хочу подключиться к базе данных Oracle 12 DB с именем службы. У меня есть логин, pw, сервер, но, похоже, я не могу добавить имя службы или порт в OracleConnectionStringBuilder.

Как подключиться к моему db с именем службы?

Я могу сделать это с Oracle.ManagedDataAccess, но из-за проблем с производительностью, я хочу проверить, работает ли Devart Driver лучше.

вид касается

+1

Скорее всего, производительность не меняется. В любом случае, какова ваша строка подключения и какая ошибка вы получаете? –

+0

В нем указано {«Ключевое слово не поддерживается:« имя службы ».»} ConnectionString: $ «Идентификатор пользователя = {myCSB.UserId}; Пароль = {myCSB.Password}; Server = {host}; Service Name = { serviceName}; Port = 1521; – k4yaman

+1

Я не знаю, поддерживает ли DevArt 'Server, Service Name, Port'. Обычно это определяется псевдонимом в файле 'tnsnames.ora'. Вместо этого попробуйте 'Data Source'. –

ответ

0

Так что это мой вывод:

Поскольку я не хочу, чтобы мои пользователи установить клиент Oracle или установить пакет более чем 10 МБ, то Devart dotConnect Экспресс для Oracle не будет работать.
Цитата исключения:
"Express Edition doesn't support Direct mode. Do not use Direct parameter of connection string. Refer to dotConnect for Oracle editions matrix."

Спасибо за помощь.

С уважением

+0

Я не знаю каковы ваши проблемы с производительностью, но когда вы проверяете большой перечень ограничений для Direct Mode, вы видите, что некоторые из них, безусловно, ухудшат вашу производительность, например отсутствие кэширования инструкций или отсутствие поддержки привязки массива. –

1

Попробуйте SID вместо Service Name. Я нашел это: Using Direct Mode

SID ** идентификатор системы (Global Database Name)

** Служба Имя строки подключения параметр может быть использован вместо SID, но в прямом режиме вы можете подключить только к одному экземпляру базы данных (RAC не поддерживается).

Для меня это работает:

var str = new DbConnectionStringBuilder(false); 
str.Add("Data Source", db); 
str.Add("User ID", user); 
str.Add("Password", pw); 
var con = new Devart.Data.Oracle.OracleConnection(str.ConnectionString); 
con.Open(); 

Вы также можете поместить полную строку подключения в качестве источника данных вместо получения псевдонима из tnsnames.ora файла, например,

string db = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={host})(PORT=1521))(CONNECT_DATA=(SERVICE_NAME={serviceName})))"; 
str.Add("Data Source", db); 
+0

Я тоже нашел это, но мой класс OracleConnectionStringBuilder не имеет этого метода.IDK почему – k4yaman

+1

Использовать общий класс [DbConnectionStringBuilder] (https://msdn.microsoft.com/en-us/library/system.data.common.dbconnectionstringbuilder (v = vs.110) .aspx) –

Смежные вопросы