获取或设置用来打开数据库连接的字符串。
[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 | 指定数据库别名。Database 关键字的最大大小值为 255 字节。 | |
| NewPWD | 指定用户标识的新密码。 | |
| Password | PWD | 指定密码。 | |
| Server | 指定带有用于直接连接的可选端口号的服务器名称。使用 IPv4 表示法 (server_name|ip_address[:port]) 或 IPv6 表示法。 | |
| User ID | UID | 指定用户标识。 |
| 关键字 | 缺省值 | 描述 |
|---|---|---|
| allowDynamicSQL | True | 指定应用程序是否可动态运行 pureQueryXML 文件中未捕获或已捕获但未绑定的所有 SQL 语句。 |
| capturedOnly | False | 指定是否仅运行 pureQueryXML 文件中的 SQL 语句。 |
| captureMode | off | 指定是否捕获有关 SQL 语句的信息以及要捕获的信息类型。如果您将 captureMode 关键字设置为 on 并且将 executionMode 关键字设置为 static,那么会抛出错误。 |
| enableDynamicSQLReplacement | False | 指定原始语句和备用语句都未绑定时是否运行 pureQueryXML 文件中的备用 SQL 语句。 |
| executionMode | dynamic | 指示是否通过使用 pureQuery 技术静态执行先前捕获的语句。如果您将 captureMode 关键字设置为 on 并且将 executionMode 关键字设置为 static,那么会抛出错误。 |
| maxNonParmSQL | -1 | 指定要捕获的非参数化 SQL 语句的最大数目。仅当 captureMode 关键字的值为 ON 时,此关键字才适用。当 captureMode 关键字的值为 OFF 时,将忽略 maxNonParmSQL 关键字值。 |
| propertiesGroupId | 指定存储库中的一个运行时组标识,此组标识是在数据库中创建的。 | |
| pureQueryXML | 指定 pureQuery 捕获文件的文件名和路径。 | |
| pureQueryXmlRepository | 指定包含 pureQueryXML 文件数据的存储库,该文件数据与启用了 pureQuery 客户机优化的 .NET 应用程序配合使用。 | |
| repositoryRequired | no | 指定检索或写入 pureQuery 数据期间发生错误时 pureQuery 客户机优化的行为。 |
| sqlLiteralSubstitution | NOT_SET | 指定是否捕获并整合语法相同且只有字面值不同的 SQL 语句(通过使用 pureQuery 客户机参数标记来替代字面值)。 |
| traceFile | 指定 pureQuery 日志文件的名称。 | |
| traceLevel | OFF | 指定要写至日志文件的详细信息的级别。 |
| 关键字 | 缺省值 | 描述 |
|---|---|---|
| Authentication | 指定认证的类型。以下值可接受:
|
|
| ClientAccountingString | 指定发送至数据库的客户机记帐字符串。 | |
| ClientApplicationName | 指定发送至数据库的客户机应用程序名称。 | |
| ClientEncAlg | 指定是否使用高级加密标准 (AES) 加密。可接受的值为 AES。 | |
| ClientUserID | 指定发送至数据库的客户机用户标识。 | |
| ClientWorkStationName | 指定发送至数据库的客户机工作站名称。 | |
| CodePage | 0 | 指定代码页标识。 |
| ConcurrentAccessResolution | 指定表示并行存取解决方案的字符串值。以下值可接受:
如果客户机未提供 ConcurrentAccessResolution 关键字值,那么数据库服务器会定义缺省行为。 对于 DB2 for i 服务器,ConcurrentAccessResolution 属性仅受 DB2 for i V7R1 及更高版本的服务器支持。 |
|
| ConnectNodeNumber | 0 - 999 | 指定要连接到的数据库分区服务器。 |
| Connection Lifetime | 60 | 指定连接池中的连接可保持空闲的时间(以秒数计)。 |
| Connection Reset | false | 指定连接关闭后是否将其放入到连接池中。以下值可接受:
|
| Connection Timeout | Connect Timeout | Timeout | 0 | 指定等待建立数据库连接的时间(以秒数计)。如果值为 0,那么指示对于建立数据库连接没有时间限制。如果启用了客户机重新路由,那么最长等待时间大约为指定连接超时的两倍,因为还会尝试连接至备用服务器。 连接超时值将对连接强制实施,无论是否已启用高可用性解决方案。 如果连接尝试在连接超时值指定的时间内失败,那么控制权将交还给应用程序并产生 SQL30081N 错误。不管是否尝试了所有备用服务器,都会返回此错误并交还控制权。 |
| CurrentFunctionPath | 指定将用于解析动态 SQL 语句中的函数引用与数据类型引用的模式名称列表。 | |
| 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 和 OS/390® 并且应用程序请求基本表目录信息时,才会使用此关键字。如果 z/OS 或 OS/390 子系统中存在大量的表,那么可指定 DBName 关键字以缩短应用程序查询表信息所消耗的时间并减少结果集中的表信息数量。 | |
| DelimIdent | 指定连接的 Informix® 数据库服务器必须支持定界 SQL 标识。DelimIdent 关键字可以设置为下列其中一个值:
|
|
| DisableCursorHold | false | 指示在落实事务后,在服务器上打开的游标将保持打开。以下值可接受:
|
| Enlist | true | 指示是否允许在分布式事务协调程序 (DTC) 中登记。以下值可接受:
|
| FitHighPrecisionType | ReturnException | 指定 IBM® Data Server
Provider for .NET将高精准度数据转换为 .NET 系统类型的方式。以下值可接受:
|
| HostVarParameter | false | 指示是否启用主变量 (:param) 支持。以下值可接受:
|
| Interrupt | 在 V10.5 GA 和 FP1 中:1 在 V10.5 FP2 和更高版本中:
|
指定中断处理方式。
以下值可接受:
|
| Isolation Level | IsolationLevel | 指定连接的隔离级别。以下值可接受:
如果将隔离级别设置为 Transaction,那么隔离级别设置为 Transaction.Current.IsolationLevel 的值。 |
|
| Max Pool Size | 无最大值 | 指定最大池大小。 |
| Min Pool Size | 0 | 指定最小池大小。 |
| Persist Security Info | false | 指示是否返回安全性敏感信息。以下值可接受:
|
| Pooling | true | 指示是否禁用连接池。以下值可接受:
|
| ProgramId | 指定发送至数据库的程序标识。 | |
| ProgramName | 指定发送至数据库的程序名。 | |
| QueryTimeout | 指定等待 SQL 语句或 XQuery 表达式完成的秒数。QueryTimeout 关键字指示在尝试取消执行并将控制权交回应用程序之前等待 SQL 语句或 XQuery 表达式完成执行的缺省秒数。此关键字将覆盖 DB2Command.CommandTimeout 属性的缺省值 30 秒。 | |
| ResultArrayAsReturnValue | false | 指示是否以类型为 ReturnValue 的参数的形式从
Informix 用户定义的例程 (UDR) 中返回结果集。值如下所示:
|
| RetrieveXMLInBinaryFormat | false | 指定是否以二进制格式返回 XML 数据。以下值可接受:
|
| RetryParameterBindingOnError | true | 指示提供程序是否重复执行失败的语句。以下值可接受:
|
| SchemaList | 指定包含模式列表的字符串值。模式列表用于为那些列示数据库中的每个表的应用程序提供更具限制性的缺省值,从而帮助改进性能。 | |
| Security | 指示是否使用 SSL 作为安全传输方法。SSL 是可为 Security 关键字指定的唯一值。 | |
| SessionTimeZone | 在 z/OS 服务器上设置 SESSION TIMEZONE 专用寄存器的值。 | |
| SkipSynonymProcessing | false | 指示 IBM Data Server
Provider for .NET 能否在不通过 DB2ConnectionStringBuilder 类传递连接字符串的情况下将连接字符串发送至
DbPermission.Add 方法。
以下值可接受:
|
| SSLClientKeystash | 指定用于 SSL 连接的 SSL 隐藏文件。 | |
| SSLClientKeystoredb | 指定用于 SSL 连接的 SSL 密钥数据库文件。 | |
| SSLClientKeystoreDBPassword | 设置与 CERTIFICATE 认证配合使用的密钥库数据库密码。 | |
| SSLClientLabel | 设置唯一标签,此标签将映射至特定证书,以便与 CERTIFICATE 认证配合使用。 | |
| StatementConcentrator | 指示是否使用语句集中。以下值可接受:
|
|
| TargetPrincipal | 指定目标服务器的标准 Kerberos 主体名称。DB2 实例所有者的标准 Kerberos 主体名称(格式为 name@REALM 或 instance@REALM)。对于 Windows 操作系统,标准 Kerberos 主体名称为 DB2 服务器服务的登录帐户(格式为 userid@DOMAIN、userid@xxx.xxx.xxx.com 或 domain\userid)。 |
|
| TrustedContextSystemPassword | TCSPWD | 指定对应要与连接配合使用的可信上下文 SYSTEM AUTHID。 |
|
| TrustedContextSystemUserID | TCSUID | 指定要与连接配合使用的可信上下文 SYSTEM AUTHID。 |
可在字符串中指定的许多设置都具有相应的只读属性。例如,DATABASE 关键字对应于 DB2Connection.Database 属性。设置连接字符串时,将更新所有这些只读属性(除非检测到了错误)。在检测到错误的情况下,将不更新任何属性。DB2Connection 属性(例如 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();
}