DB2 V9.7 for Linux, UNIX, and Windows

DB2Connection.ConnectionString 属性

获取或设置用来打开数据库连接的字符串。

名称空间:
IBM.Data.DB2
组合件:
IBM.Data.DB2(在 IBM.Data.DB2.dll 中)

语法

[Visual Basic]
Public Property ConnectionString As String  Implements _
   IDbConnection.ConnectionString
[C#]
public string ConnectionString {get; set;}
[C++]
public: __property String* get_ConnectionString();
public: __property void set_ConnectionString(String*);
[JScript]
public function get ConnectionString() : String;
public function set ConnectionString(String);
实现:
IDbConnection.ConnectionString

属性值

连接字符串,它包括建立初始连接所需的设置(例如,数据库名称)。缺省值为空字符串("")。最大长度为 1024 个字符。

注释

可以使用 ConnectionString 属性来连接至任何受支持的数据服务器。仅当连接关闭时您才能设置 ConnectionString 属性。

以下表描述了支持的关键字。

要点: 只有 pureQuery 关键字区分大小写。
表 1. 公共关键字
关键字 缺省值 描述
Database   数据库别名(用于已编目数据库)。最大大小取决于您要使用的数据库客户机:对于 DB2® V9.5 FP3 或更高版本,最大大小为 255 字节;对于 DB2 V9.5 FP1 或 FP2,最大大小为 18 字节;对于 DB2 V9.5 或更低版本,最大大小为 8 字节。
Password | PWD   密码。
Server   带有用于直接连接的可选端口号的服务器名。使用 IPv4 表示法 (server name|ip address[:port]) 或 IPv6 表示法。
User ID | UID   用户标识。
NewPWD   用户名的新密码。
表 2. pureQuery 关键字
关键字 缺省值 描述
allowDynamicSQL   指定是否允许应用程序动态运行 pureQueryXML 文件中任何未捕获或已捕获但未找到的 SQL 语句。
captureMode off 指示是否捕获动态执行的语句以与 pureQuery® 配合使用。以下值可接受:
  • off
  • on
如果您将 captureMode 关键字设置为 on 并且将 executionMode 关键字设置为 static,那么会抛出错误。
capturedOnly   指定是否仅运行 pureQueryXML 文件中的 SQL 语句。
enableDynamicSQLReplacement   指定是否运行已添加至 pureQueryXML 文件的备用 SQL 语句,原始语句和备用语句都未绑定。
executionMode dynamic 指示是否使用 pureQuery 技术静态执行先前捕获的语句。以下值可接受:
  • dynamic
  • static
如果您将 captureMode 关键字设置为 on 并且将 executionMode 关键字设置为 static,那么会抛出错误。
maxNonParmSQL   指定要捕获的非参数化 SQL 语句的最大数目。仅当 captureMode 值为 ON 时,此选项才适用。如果 captureModeOFF,那么 pureQuery 会忽略此参数。
propertiesGroupId   指定存储库中的一个运行时组标识,此组标识是在数据库中创建的。
pureQueryXML   pureQuery 捕获文件的文件名和路径。
pureQueryXmlRepository   指定包含 pureQueryXML 文件数据的存储库,此数据与允许进行 pureQuery 客户机优化的 .NET 应用程序配合使用。
repositoryRequired   指定检索或写入 pureQuery 数据期间发生错误时 pureQuery 客户机优化的行为。
sqlLiteralSubstitution   指定是否捕获并整合语法相同而只有字面值不同的 SQL 语句(通过使用 pureQuery 参数标记来替代字面值)。
traceFile   pureQuery 日志文件的名称。
traceLevel   指定要写至日志文件的详细信息的级别。
表 3. 其他关键字
关键字 缺省值 描述
Authentication 未指定 认证的类型。以下值可接受:
  • SERVER
  • SERVER_ENCRYPT
  • DATA_ENCRYPT
  • KERBEROS
  • GSSPLUGIN
  • CERTIFICATE
ClientAccountingString   发送至数据库的客户机记帐字符串。
ClientApplicationName   发送至数据库的客户机应用程序名称。
ClientEncAlg   指示是否使用高级加密标准 (AES)。可接受的值为 AES
ClientUserID   发送至数据库的客户机用户标识。
ClientWorkStationName   发送至数据库的客户机工作站名称。
CodePage 0 代码页标识。
ConcurrentAccessResolution   表示并行存取解决方案的字符串值。以下值可接受:
  • CurrentlyCommitted – 使用数据的当前落实版本。
  • WaitForOutcome – 遇到锁定行时等待 COMMITROLLBACK 操作。
  • SkipLockedData – 跳过处于记录锁定冲突的行。只有 DB2 for z/OS® V10 及更高版本服务器才支持 SkipLockedData

如果客户机未提供 ConcurrentAccessResolution 值,那么数据库服务器会定义缺省行为。

ConnectNodeNumber 0 到 999 指定要与其建立连接的数据库分区服务器。
Connection Lifetime 60 连接池中的连接可保持空闲的时间(以秒数计)。
Connection Reset false 指示连接关闭后是否将其放入到连接池中。以下值可接受:
  • true。当连接关闭时,不将连接放入到连接池中。
  • false。当连接关闭时,将连接放入到连接池中。
Connection Timeout | Connect Timeout | Timeout 0 等待建立数据库连接的时间(以秒数计)。如果值为 0,那么指示对于建立数据库连接没有时间限制。在 V9.7 FP6 之前,如果启用了客户机重新路由,那么最长等待时间大约为指定连接超时的两倍,因为还会再次尝试连接至备用服务器。

在 V9.7 FP6 及更高版本修订包中,不管是否启用了高可用性解决方案,都会对连接实施连接超时值。如果连接尝试在连接超时值指定的时间内失败,那么控制权将交还给应用程序并产生 SQL30081N 错误。不管是否尝试了所有备用服务器,都会返回此错误并交还控制权。

CurrentPackageSet   在每次连接后发出 SET CURRENT PACKAGESET 语句。
CurrentSchema   一个模式名称,用于限定与当前连接配合使用的所有非限定 SQL 对象。
CurrentSQLID   一个 SQLID,用于限定配合与 DB2 for z/OS 的当前连接使用的所有非限定 SQL 对象。在 DB2 for z/OS 以外的服务器上,设置 CurrentSQLID 关键字等价于设置 CurrentSchema 关键字。
DB2Explain off 确定服务器是否将生成说明快照和/或说明表。以下值可接受:
  • Off – 禁用快照和表的说明信息。
  • Table – 生成表的说明信息。
  • Snapshot – 生成快照的说明信息。
  • SnapshotAndTable – 对快照和表启用说明信息。
DBName 仅当连接至 DB2 for z/OS and OS/390® 并且应用程序请求(基本)表目录信息时,才会使用此选项。如果 z/OS 或 OS/390 子系统中存在大量的表,那么可指定 DBName 以缩短应用程序查询表信息所消耗的时间并减少结果集中的表信息数量。
DelimIdent 仅当连接至 Informix® 数据库服务器时,才使用此选项。DelimIdent 参数指定连接的 Informix 数据库服务器是否必须支持定界 SQL 标识。DelimIdent 参数的有效值包括:
  • 1 - True。指示连接的 Informix 数据库服务器必须支持定界 SQL 标识。
  • 0 - False。指示连接的 Informix 数据库服务器不必支持定界 SQL 标识。
DisableCursorHold false
指示在落实事务后,在服务器上打开的游标是否应继续保持打开。以下值可接受:
  • true。在落实事务后,在服务器上打开的游标将关闭。
  • false。在落实事务后,在服务器上打开的游标将保持打开。
Enlist true 指示是否允许在分布式事务协调程序 (DTC) 中登记。以下值可接受:
  • true。允许登记到 DTC。仅当连接时,COM+ 事务正在进行中时,才会登记。
  • false。不允许登记到 DTC。
FitHighPrecisionType ReturnException 以下值可接受:
  • WithTruncate。导致安静地截断列值(必要时)后返回 .NET 系统类型。
  • AsString。导致将列转换为 .NET 字符串类型。
  • ReturnException。如果该值不适合 .NET 系统类型,那么会导致截断异常。
HostVarParameter false 指示是否启用主变量 (:param) 支持。以下值可接受:
  • true。启用主变量支持。
  • false。禁用主变量支持。
Interrupt 1 中断处理方式。以下值可接受:
  • 0。禁用中断处理。
  • 1。如果服务器支持中断,那么将发送中断。否则,连接将被断开。
  • 2。无论服务器是否具有中断功能,中断都会导致连接被断开。
Isolation Level | IsolationLevel   连接的隔离级别。以下值可接受:
  • ReadCommitted
  • ReadUncommitted
  • RepeatableRead
  • Serializable
  • Transaction
  • Chaos
注: 只有连接至 IBM® iSeries® 服务器的应用程序才支持关键字 Chaos

如果将隔离级别设置为 Transaction,那么隔离级别设置为 Transaction.Current.IsolationLevel 的值。

Max Pool Size 无最大值 最大池大小。
Min Pool Size 0 最小池大小。
Persist Security Info false 指示是否返回安全性敏感信息。以下值可接受:
  • true。允许在连接已打开后或曾打开的情况下,将安全性敏感信息(例如,密码)作为连接字符串的一部分返回。
  • false。不允许将安全性敏感信息作为连接字符串的一部分返回。应避免公开安全性敏感信息。
Pooling true 指示是否禁用连接池。以下值可接受:
  • true。启用连接池。
  • false。禁用连接池。
ProgramId   发送至数据库的程序标识。
ProgramName   发送至数据库的程序名。
QueryTimeout 获取或设置 QueryTimeout 关键字的值。QueryTimeout 指示在尝试取消执行并将控制权交回应用程序之前等待 SQL 语句或 XQuery 表达式完成执行的缺省秒数。此属性覆盖缺省 30 秒的 DB2Command.CommandTimeout 值。
ResultArrayAsReturnValue false 指示是否以类型为 ReturnValue 的参数的形式从 Informix 用户定义的例程 (UDR) 中返回结果集。

如果将 ResultArrayAsReturnValue 关键字设置为 true,那么将作为 ReturnValue 的参数返回结果集。

当参数集合中没有绑定 ReturnValue 参数时,会忽略此关键字。
RetrieveXMLInBinaryFormat false 一个值,它表示是否应以二进制格式返回 XML 数据。
RetryParameterBindingOnError true 一个值,它指示提供程序是否重复执行失败的语句。
SchemaList   一个模式列表,它用于为那些列示数据库中的每个表的应用程序提供更具限制性的缺省值以改进性能。
Security   指示是否使用 SSL 作为安全传输方法。
SessionTimeZone   在 z/OS 服务器上设置 SESSION TIMEZONE 专用寄存器的值。
SSLClientKeystash   将 SSLClientKeystash 设置为标准隐藏文件名称。
SSLClientKeystoredb   将 SSLClientKeystoredb 设置为标准密钥数据库文件名。
SSLClientKeystoreDBPassword   设置与 CERTIFICATE 认证配合使用的密钥库数据库密码。
SSLClientLabel   设置唯一标签,此标签将映射至特定证书,以便与 CERTIFICATE 认证配合使用。
StatementConcentrator  
指示是否使用语句集中。以下值可接受:
  • Off。禁用语句集中器。
  • Literals。启用使用字面值行为的语句集中器。将应用服务器端语句集中器限制。
如果您不设置此关键字,那么字面值替换行为将由服务器配置确定。
SkipSynonymProcessing false
指示 IBM Data Server Provider for .NET 能否在不通过 DB2ConnectionStringBuilder 类的情况下将连接字符串发送至 DbPermission.Add 方法。以下值可接受:
  • true。IBM Data Server Provider for .NET 通过 DB2ConnectionStringBuilder 类发送连接字符串。
  • false。IBM Data Server Provider for .NET 不通过 DB2ConnectionStringBuilder 类发送连接字符串。
TargetPrincipal  

目标服务器的标准 Kerberos 主体名称;即,DB2 实例所有者的标准 Kerberos 主体(格式为 name/instance@REALM)。对于 Windows 2000、Windows XP 和 Windows Server 2003,这是 DB2 服务器服务的登录账号(格式为 userid@DOMAINuserid@xxx.xxx.xxx.comdomain\userid)。

TrustedContextSystemUserID | TCSUID  

要用于连接的可信上下文 SYSTEM AUTHID。

TrustedContextSystemPassword | TCSPWD  

一个密码,它对应要与连接配合使用的可信上下文 SYSTEM AUTHID。

可在字符串中指定的许多设置都具有相应的只读属性,例如,DATABASEDatabase 属性相对应。设置连接字符串时,将更新所有这些只读属性(除非检测到了错误)。在检测到错误的情况下,将不更新任何属性。DB2Connection 属性(例如 Database)仅返回缺省设置或者为 ConnectionString 属性指定的那些设置。

在您设置连接字符串时,将对其进行验证。

在已关闭的连接上重置 ConnectionString 属性时将重置包括密码在内的所有连接字符串值及相关属性。

示例

[Visual Basic, C#] 以下示例将创建 DB2Connection 并在连接字符串中设置它的一些属性:

[Visual Basic]
Public Sub CreateDB2Connection()
    Dim myConnString As String = _
       "DATABASE=SAMPLE;"
    Dim myConnection As New DB2Connection(myConnString)
    myConnection.Open()
    MessageBox.Show("ServerVersion: " + myConnection.ServerVersion _
       + ControlChars.Cr + "Database: " + myConnection.Database.ToString())
    myConnection.Close()
End Sub

[C#]
public void CreateDB2Connection()
{
   string myConnString = "DATABASE=SAMPLE;";
   DB2Connection myConnection = new DB2Connection(myConnString);
   myConnection.Open();
   MessageBox.Show("ServerVersion: " + myConnection.ServerVersion
      + "\nDatabase: " + myConnection.Database.ToString());
   myConnection.Close();
}