如何将IBM iSeries 2连接字符串中的SQL默认库指示给AS/400?
问题描述:
我使用IBM iSeries Access for Windows软件包连接到AS/400存储过程层。这提供了一个类似于System.Data
命名空间类的.NET DLL。因此,我们使用它们的连接类的实现并为它提供一个连接字符串。如何将IBM iSeries 2连接字符串中的SQL默认库指示给AS/400?
有谁知道我可以如何修改连接字符串来指示它应该使用的默认库?
答
您是否使用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="HTSUTST, HTEUSRJ, HTEDTA"**" providerName="System.Data.OleDb" />
答
从一些Delphi源代码片段使用客户端访问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;';
答
如果通过.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标记,并定义用于连接这将是在这种情况下的OleDb的API:
providerName="System.Data.OleDb"