2

我需要针对 AS400 上的文件执行基本 SQL(在本例中为插入)。我正在编写一个在 Windows 2008 上运行的 C# 厚客户端命令行应用程序。

如果我指定一个库和一个文件,如下所示:

insert into somelibrary.somefile (col1,col2) values val1,val2

然后它工作。somelibrary问题是用户和环境之间的值会有所不同。我想使用库列表 *LIBL,以便它以正确的顺序获取用户已分配的任何库。如果可能的话,我想避免使用配置文件。

我正在测试的用户在他的库列表中具有包含somefile. 如果我尝试:

insert into somefile (col1,col2...) values val1,val2

我收到一个错误:

ERROR [42S02] [IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0204 - somefile in username type *FILE not found.

我尝试在 SQL 和连接字符串中添加 *LIBL,但它没有找到该文件。我尝试了很多组合,以及使用斜杠来分隔库和文件。

如果它是相关的,连接字符串是:

Driver={Client Access ODBC Driver (32-bit)}; System=" + server + "; UID=" + DBUser + "; PWD=" + DBPassword + ";";
4

1 回答 1

1

用于此请求的库列表是用于验证的用户配置文件的库列表。用户配置文件指向与库列表相关的两个项目:职位描述和初始程序。检查职位描述以查看图书馆列表是什么。可能它没有包含 SOMEFILE 的库。这留下了初始程序。如果在初始程序中设置了库列表,您就会遇到问题,因为只有在配置文件登录到终端会话时才会执行初始程序。

解决此问题的方法是创建包含所需库列表的用户配置文件和职位描述。

于 2013-01-22T15:54:32.220 回答