库列表的IBM .NET数据提供程序连接字符串问题

Big*_*Pin 2 c# db2 connection-string ibm-midrange

我试图在C#程序中使用DB2 .Net Data Provider而不是依赖ODBC.下面的连接字符串可以工作,但只适用于一个库(比如我的库是test1和test2).

Data Source=xxx.xxx.xxx.xxx;User Id=testuser;Password=testpassword;
Naming=SQL;Default Collection=test1;
Run Code Online (Sandbox Code Playgroud)

如果我添加"Library List = test1,test2;" (我已尝试过几种变体)连接字符串,它不允许我访问其他库,只允许访问defaultcollection中定义的库.我也尝试过不指定默认收集,但这导致查询根本不起作用.我需要做什么才能运行可以在同一连接上访问这两个库的查询?

jam*_*man 7

库列表仅在使用系统命名约定时有效.

SQL_NAMING
指定表由表单中的集合名称限定:

collection.table

其中collection是集合的名称,table是表名.默认限定符是运行执行SQL语句的进程的用户标识,并且在未明确限定表名且未指定缺省集合名时使用.

SYSTEM_NAMING
指定文件由库名称限定为:

library/file

其中library是库的名称,file是表名.如果未明确限定表名(文件)且未指定缺省集合名(库),则缺省搜索路径是非限定表名的库列表(*LIBL).


小智 5

使用Naming=SQL,如果在库列表中指定库,则不需要使用默认集合.只需添加以下内容:

;LibraryList=lib1,lib2,lib3,lib4;SchemaSearchList=lib1,lib2,lib3,lib4;
Run Code Online (Sandbox Code Playgroud)

或者在连接作业上使用默认库列表,这很可能是在用户配置文件中定义的.

;LibraryList=*USRLIBL;SchemaSearchList=*USRLIBL;
Run Code Online (Sandbox Code Playgroud)