[英]How do indicate the SQL default library in an IBM iSeries 2 connection string to an AS/400?
我正在使用IBM iSeries Access for Windows軟件包連接到AS / 400存儲過程層。 這提供了一個.NET DLL,其類與System.Data
命名空間中的類相似。 因此,我們使用它們的連接類實現並為其提供連接字符串。
有誰知道如何修改連接字符串以指示它應該使用的默認庫?
如果您通過.NET連接:
Provider=IBMDA400;Data Source=as400.com;User Id=user;Password=password;Default Collection=yourLibrary;
Default Collection是設置程序應該開始執行的庫的參數。
如果您通過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"
使用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;';
您是否使用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" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.