如何在 IBM iSeries 2 连接字符串中指示 AS/400 的 SQL 默认库?

发布于 2024-07-04 08:33:54 字数 173 浏览 8 评论 0原文

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

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

I'm connecting to an AS/400 stored procedure layer using the IBM iSeries Access for Windows package. This provides a .NET DLL with classes similar to those in the System.Data namespace. As such we use their implementation of the connection class and provide it with a connection string.

Does anyone know how I can amend the connection string to indicate the default library it should use?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

臻嫒无言 2024-07-11 08:33:55

使用 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;';

Snippet from some Delphi source code using the Client Access Express Driver. Probably not exactly what you are looking for, but it may help others that stumble upon this post. The DBQ part is the default library, and the System part is the AS400/DB2 host name.

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;';
扎心 2024-07-11 08:33:55

您是否使用 OLE DB 的 Catalog Library List 参数? 这就是我的连接字符串通常的样子:

<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" />

Are you using the Catalog Library List parameter for OLE DB? This is what my connection string typically looks like:

<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" />
浅唱々樱花落 2024-07-11 08:33:54

如果您通过 .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"

If you are connecting through .NET:

Provider=IBMDA400;Data Source=as400.com;User Id=user;Password=password;Default Collection=yourLibrary;

Default Collection is the parameter that sets the library where your programs should start executing.

And if you are connecting through ODBC from Windows (like setting up a driver in the control panel):

DRIVER=Client Access ODBC Driver(32-bit);SYSTEM=as400.com;EXTCOLINFO=1;UID=user;PWD=password;LibraryList=yourLibrary

In this case LibraryList is the parameter to set, remember this is for ODBC connection.

There are two drivers from IBM to connect to the AS400, the older one uses the above connection string, if you have the newest version of the client software from IBM called "System i Access for Windows" then you should use this connection string:

DRIVER=iSeries Access ODBC Driver;SYSTEM=as400.com;EXTCOLINFO=1;UID=user;PWD=password;LibraryList=yourLibrary

The last is pretty much the same, only the DRIVER parameter value changes.

If you are using this in a .NET application don't forget to add the providerName parameter to your XML tag and define the API used for connecting which would be OleDb in this case:

providerName="System.Data.OleDb"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文