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

时间:2013-10-31 20:19:48

标签: 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;

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

3 个答案:

答案 0 :(得分:7)

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

  

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

     

SYSTEM_NAMING
  指定文件由库名称限定,格式为:
  
  图书馆/档案
  
  其中library是库和文件的名称   是表名。默认搜索路径是   如果表名(文件)未明确限定,则为非限定表名的库列表(* LIBL)   并且未指定默认集合名称(库)。

答案 1 :(得分:5)

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

;LibraryList=lib1,lib2,lib3,lib4;SchemaSearchList=lib1,lib2,lib3,lib4;

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

;LibraryList=*USRLIBL;SchemaSearchList=*USRLIBL;

答案 2 :(得分:1)

您可以关注lamLam回答,例如我在测试库和生产库之间进行更改。

但请查看iSeries SO版本。某些旧版本不支持SchemaSearchList。 版本V6R1和V7R1支持它。