获取或设置用来打开数据库连接的字符串。
[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);
连接字符串,它包括建立初始连接所需的设置(例如,数据库名称)。缺省值为空字符串("")。最大长度为 1024 个字符。
可以使用 ConnectionString 属性来连接至任何受支持的数据服务器。仅当连接关闭时您才能设置 ConnectionString 属性。
以下表描述了支持的关键字。
| 关键字 | 缺省值 | 描述 |
|---|---|---|
| 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 | 用户名的新密码。 |
| 关键字 | 缺省值 | 描述 |
|---|---|---|
| allowDynamicSQL | 指定是否允许应用程序动态运行 pureQueryXML 文件中任何未捕获或已捕获但未找到的 SQL 语句。 | |
| captureMode | off | 指示是否捕获动态执行的语句以与 pureQuery® 配合使用。以下值可接受:
|
| capturedOnly | 指定是否仅运行 pureQueryXML 文件中的 SQL 语句。 | |
| enableDynamicSQLReplacement | 指定是否运行已添加至 pureQueryXML 文件的备用 SQL 语句,原始语句和备用语句都未绑定。 | |
| executionMode | dynamic | 指示是否使用 pureQuery 技术静态执行先前捕获的语句。以下值可接受:
|
| maxNonParmSQL | 指定要捕获的非参数化 SQL 语句的最大数目。仅当 captureMode 值为 ON 时,此选项才适用。如果 captureMode 为 OFF,那么 pureQuery 会忽略此参数。 | |
| propertiesGroupId | 指定存储库中的一个运行时组标识,此组标识是在数据库中创建的。 | |
| pureQueryXML | pureQuery 捕获文件的文件名和路径。 | |
| pureQueryXmlRepository | 指定包含 pureQueryXML 文件数据的存储库,此数据与允许进行 pureQuery 客户机优化的 .NET 应用程序配合使用。 | |
| repositoryRequired | 指定检索或写入 pureQuery 数据期间发生错误时 pureQuery 客户机优化的行为。 | |
| sqlLiteralSubstitution | 指定是否捕获并整合语法相同而只有字面值不同的 SQL 语句(通过使用 pureQuery 参数标记来替代字面值)。 | |
| traceFile | pureQuery 日志文件的名称。 | |
| traceLevel | 指定要写至日志文件的详细信息的级别。 |
| 关键字 | 缺省值 | 描述 |
|---|---|---|
| Authentication | 未指定 | 认证的类型。以下值可接受:
|
| ClientAccountingString | 发送至数据库的客户机记帐字符串。 | |
| ClientApplicationName | 发送至数据库的客户机应用程序名称。 | |
| ClientEncAlg | 指示是否使用高级加密标准 (AES)。可接受的值为 AES。 | |
| ClientUserID | 发送至数据库的客户机用户标识。 | |
| ClientWorkStationName | 发送至数据库的客户机工作站名称。 | |
| CodePage | 0 | 代码页标识。 |
| ConcurrentAccessResolution | 表示并行存取解决方案的字符串值。以下值可接受:
如果客户机未提供 ConcurrentAccessResolution 值,那么数据库服务器会定义缺省行为。 |
|
| ConnectNodeNumber | 0 到 999 | 指定要与其建立连接的数据库分区服务器。 |
| Connection Lifetime | 60 | 连接池中的连接可保持空闲的时间(以秒数计)。 |
| Connection Reset | 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 | 确定服务器是否将生成说明快照和/或说明表。以下值可接受:
|
| DBName | 仅当连接至 DB2 for z/OS and OS/390® 并且应用程序请求(基本)表目录信息时,才会使用此选项。如果 z/OS 或 OS/390 子系统中存在大量的表,那么可指定 DBName 以缩短应用程序查询表信息所消耗的时间并减少结果集中的表信息数量。 | |
| DelimIdent | 仅当连接至 Informix® 数据库服务器时,才使用此选项。DelimIdent
参数指定连接的 Informix 数据库服务器是否必须支持定界 SQL 标识。DelimIdent
参数的有效值包括:
|
|
| DisableCursorHold | false | 指示在落实事务后,在服务器上打开的游标是否应继续保持打开。以下值可接受:
|
| Enlist | true | 指示是否允许在分布式事务协调程序 (DTC) 中登记。以下值可接受:
|
| FitHighPrecisionType | ReturnException | 以下值可接受:
|
| HostVarParameter | false | 指示是否启用主变量 (:param) 支持。以下值可接受:
|
| Interrupt | 1 | 中断处理方式。以下值可接受:
|
| Isolation Level | IsolationLevel | 连接的隔离级别。以下值可接受:
注: 只有连接至 IBM® iSeries® 服务器的应用程序才支持关键字
Chaos。
如果将隔离级别设置为 Transaction,那么隔离级别设置为 Transaction.Current.IsolationLevel 的值。 |
|
| Max Pool Size | 无最大值 | 最大池大小。 |
| Min Pool Size | 0 | 最小池大小。 |
| Persist Security Info | false | 指示是否返回安全性敏感信息。以下值可接受:
|
| Pooling | true | 指示是否禁用连接池。以下值可接受:
|
| 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 | 指示是否使用语句集中。以下值可接受:
|
|
| SkipSynonymProcessing | false | 指示
IBM Data Server Provider for .NET
能否在不通过 DB2ConnectionStringBuilder 类的情况下将连接字符串发送至
DbPermission.Add 方法。以下值可接受:
|
| TargetPrincipal | 目标服务器的标准 Kerberos 主体名称;即,DB2 实例所有者的标准 Kerberos 主体(格式为 name/instance@REALM)。对于 Windows 2000、Windows XP 和 Windows Server 2003,这是 DB2 服务器服务的登录账号(格式为 userid@DOMAIN、userid@xxx.xxx.xxx.com 或domain\userid)。 |
|
| TrustedContextSystemUserID | TCSUID | 要用于连接的可信上下文 SYSTEM AUTHID。 |
|
| TrustedContextSystemPassword | TCSPWD | 一个密码,它对应要与连接配合使用的可信上下文 SYSTEM AUTHID。 |
可在字符串中指定的许多设置都具有相应的只读属性,例如,DATABASE 与 Database 属性相对应。设置连接字符串时,将更新所有这些只读属性(除非检测到了错误)。在检测到错误的情况下,将不更新任何属性。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();
}