5

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

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

4

3 回答 3

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"
于 2008-09-18T23:06:20.373 回答
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;';
于 2008-09-17T16:05:17.697 回答
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" />
于 2008-09-17T15:19:32.127 回答