Как указать имя базы данных SYBASE в ODBC в .NET - PullRequest
0 голосов
/ 22 декабря 2010

Я использую драйвер Sybase ODBC в C #.Работает хорошо, но я не могу найти способ указать базу данных, с которой я работаю.

В качестве обходного пути я использую это уведомление о двойных точках

 SELECT * FROM DB_NAME..TABLE_NAME

Но мне интересно, есть ли способуказать БД в строке подключения (как в MS SQL - Исходный каталог)

Ниже приведен код, который я использую для создания строки подключения:

string connString = string.Format ( "Driver={{{0}}};srvr={1};uid={2};pwd={3};Initial Catalog={4};",
 GetConfigEntry ( "SYBASE_DRIVER" ),
 GetConfigEntry ( "SERVER" ), 
 GetConfigEntry ( "LOGIN" ),
 GetConfigEntry ( "PSWD" ),
 GetConfigEntry ( "DB" )
);

РЕДАКТИРОВАТЬ: Iиспользую {MERANT 3.60 32-битный драйвер Sybase}

Ответы [ 2 ]

1 голос
/ 22 декабря 2010

Используя следующую строку подключения, вы можете использовать Sybase из C # и указать исходный каталог.

Data Source=\\myserver\myvolume\mypat;Initial Catalog=mydd.add;User    ID=myUsername;Password=myPassword;ServerType=REMOTE;

В любом случае, ваша строка подключения имеет свойство исходного каталога.

0 голосов
/ 16 января 2011
  1. Вы можете неправильно понять некоторые фундаментальные здесь.В отличие от собственных соединений с Sybase или MS, соединение ODBC имеет дело с одним и только одним именем db_name, как указано в определении источника данных.ODBC не понимает или не имеет возможности изменять контексты БД.Поэтому создайте новое определение источника данных для каждого имени db_, к которому нужно подключиться.

    • Обратите внимание, что каждый драйвер ODBC (поставщик) имеет свои особенности
    • Использование собственного соединения (CT-Библиотека) намного, намного быстрее, чем ODBC, и не имеет таких ограничений.
      .
  2. Sybase также позволяет установить по умолчанию db_name для входа в систему.Вы можете изменить это так, чтобы любое соединение из этого логина передавалось напрямую к определенной базе данных.

  3. Sybase, безусловно, позволяет переключать контексты базы данных, после , когда вы подключены.Вы можете: <pre>USE db_name GO Не забыть "GO"USE db_name» должна быть единственной командой в пакете.

  4. Если вы не администратор базы данных, и вас (как разработчика) поместили в имя_базы_для, для целей локализации, и вы не можете изменить это, тогда использование полного имени таблицы "db_name.user.table_name" является правильным методом.У каждого компонента есть значение по умолчанию (db_name - текущий дБ; user - dbo).Это не обходной путь, это обязательный метод согласно стандарту SQL ISO / IEC / ANSI.

...