如何将IBM iSeries 2连接字符串中的SQL缺省库指示为AS / 400?

时间:2008-09-17 15:14:13

标签: .net database connection-string ibm-midrange

我正在使用IBM iSeries Access for Windows软件包连接到AS / 400存储过程层。这提供了一个.NET DLL,其类与System.Data命名空间中的类相似。因此,我们使用它们的连接类实现并为其提供连接字符串。

有谁知道如何修改连接字符串以指示它应该使用的默认库?

3 个答案:

答案 0 :(得分:4)

如果要连接到.NET

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

默认收藏 是设置程序应该开始执行的库的参数。

如果您从Windows连接通过ODBC (比如在控制面板中设置驱动程序):

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"

答案 1 :(得分:2)

使用Client Access Express驱动程序从一些Delphi源代码中获取片段。可能不完全不是你想要的,但它可能会帮助其他人偶然发现这篇文章。 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;';

答案 2 :(得分:1)

您是否正在使用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" />