簡體   English   中英

如何將IBM iSeries 2連接字符串中的SQL缺省庫指示為AS / 400?

[英]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=&quot;HTSUTST, HTEUSRJ, HTEDTA&quot;**" providerName="System.Data.OleDb" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM