如何在IBM iSeries 2与AS / 400的连接字符串中指示SQL默认库?
时间:2020-03-05 18:59:08 来源:igfitidea点击:
我正在使用IBM iSeries Access Windows版软件包连接到AS / 400存储过程层。这为.NET DLL提供了类似于System.Data
命名空间中的类的类。因此,我们使用他们对连接类的实现,并为其提供连接字符串。
有谁知道我该如何修改连接字符串以指示它应该使用的默认库?
解决方案
回答
我们是否正在使用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" />
回答
使用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;';
回答
如果通过.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,在这种情况下,该API为OleDb:
providerName="System.Data.OleDb"