Как указать библиотеку SQL по умолчанию в строке подключения IBM iSeries 2 к AS / 400? - PullRequest
5 голосов
/ 17 сентября 2008

Я подключаюсь к слою хранимых процедур AS / 400 с помощью пакета IBM iSeries Access for Windows. Это обеспечивает .NET DLL с классами, подобными классам в пространстве имен System.Data. Поэтому мы используем их реализацию класса соединения и предоставляем ему строку соединения.

Кто-нибудь знает, как я могу изменить строку подключения, чтобы указать библиотеку по умолчанию, которую она должна использовать?

Ответы [ 3 ]

4 голосов
/ 19 сентября 2008

Если вы подключаетесь через .NET :

Provider=IBMDA400;Data Source=as400.com;User Id=user;Password=password;Default Collection=yourLibrary;

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

А если вы подключаете через ODBC из Windows (как установка драйвера на панели управления):

DRIVER=Client Access ODBC Driver(32-bit);SYSTEM=as400.com;EXTCOLINFO=1;UID=user;PWD=password;LibraryList=yourLibrary

В этом случае LibraryList - это параметр для установки, помните, что это для соединения ODBC.

Существует два драйвера от IBM для подключения к AS400, более старый использует указанную выше строку подключения. Если у вас установлена ​​новейшая версия клиентского программного обеспечения от IBM под названием «System i Access for Windows», вам следует использовать это подключение. строка:

DRIVER=iSeries Access ODBC Driver;SYSTEM=as400.com;EXTCOLINFO=1;UID=user;PWD=password;LibraryList=yourLibrary

Последнее примерно то же самое, только значение параметра DRIVER изменяется.

Если вы используете это в приложении .NET, не забудьте добавить параметр providerName в ваш тег XML и определить API, используемый для подключения, который будет OleDb в этот случай:

providerName="System.Data.OleDb"
2 голосов
/ 17 сентября 2008

Фрагмент из некоторого исходного кода Delphi с использованием драйвера Client Access Express. Возможно, не совсем то, что вы ищете, но это может помочь другим, которые наткнулись на этот пост. Часть DBQ - это библиотека по умолчанию, а часть System - это имя хоста AS400 / DB2.

ConnectionString :=
  'Driver={Client Access ODBC Driver (32-bit)};' +
  'System=' + System + ';' +
  'DBQ=' + Lib + ';' +
  'TRANSLATE=1;' +
  'CMT=0;' +
  //'DESC=Client Access Express ODBC data source;' +
  'QAQQINILIB=;' +
  'PKG=QGPL/DEFAULT(IBM),2,0,1,0,512;' +      
  'SORTTABLE=;' +
  'LANGUAGEID=ENU;' +
  'XLATEDLL=;' +
  'DFTPKGLIB=QGPL;';
1 голос
/ 17 сентября 2008

Используете ли вы параметр списка библиотеки каталога для OLE DB? Вот как обычно выглядит моя строка подключения:

<add name="AS400ConnectionString" connectionString="Data Source=DEVL820;Initial Catalog=Q1A_DATABASE_SRVR;Persist Security Info=False;User ID=BLAH;Password=BLAHBLAH;Provider=IBMDASQL.DataSource.1;**Catalog Library List=&quot;HTSUTST, HTEUSRJ, HTEDTA&quot;**" providerName="System.Data.OleDb" />
...