DB2Connection.ConnectionString 属性

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

名称空间:
DB2IBM.Data.
组合件:
DB2IBM.Data. (在 DB2IBM.Data..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   指定数据库别名。 Database 关键字的值的最大大小为 255 字节。
NewPWD   指定用户标识的新密码。
Password | PWD   指定密码。
Server   指定带有用于直接连接的可选端口号的服务器名称。 使用 IPv4 表示法 (server_name|ip_address[:port]) 或 IPv6 表示法。
User ID | UID   指定用户标识。
表 2。 pureQuery 关键字
关键字 缺省值 描述
allowDynamicSQL True 指定应用程序是否可动态运行 pureQueryXML 文件中未捕获或已捕获但未绑定的所有 SQL 语句。
capturedOnly False 指定是否仅运行 pureQueryXML 文件中的 SQL 语句。
captureMode 指定是否捕获有关 SQL 语句的信息以及要捕获的信息类型。 如果您将 captureMode 关键字设置为 on 并且将 executionMode 关键字设置为 static,那么会抛出错误。
enableDynamicSQLReplacement False 指定原始语句和备用语句都未绑定时是否运行 pureQueryXML 文件中的备用 SQL 语句。
executionMode 动态 指示是否使用 pureQuery 技术以静态方式执行先前捕获的语句。 如果您将 captureMode 关键字设置为 on 并且将 executionMode 关键字设置为 static,那么会抛出错误。
maxNonParmSQL -1 指定要捕获的非参数化 SQL 语句的最大数目。 仅当 captureMode 关键字的值为 ON 时,此关键字才适用。 当 captureMode 关键字的值为 OFF时,将忽略 maxNonParmSQL 关键字值。
propertiesGroupId   指定存储库中的一个运行时组标识,此组标识是在数据库中创建的。
pureQueryXML   指定 pureQuery 捕获文件的文件名和路径。
pureQueryXmlRepository   指定包含 pureQueryXML 文件数据的存储库,该文件数据用于支持 pureQuery 客户机优化的 .NET 应用程序。
repositoryRequired 指定检索或写入 pureQuery 数据期间发生错误时 pureQuery 客户机优化的行为。
sqlLiteralSubstitution NOT_SET 指定是否通过使用 pureQuery 客户机替换字面值的参数标记来捕获和合并仅在字面值中存在差异的共享语法的 SQL 语句。
traceFile 指定 pureQuery 日志文件的名称。
traceLevel 指定要写至日志文件的详细信息的级别。
表 3. 其他关键字
关键字 缺省值 描述
Authentication   指定认证的类型。 以下值可接受:
  • CERTIFICATE
  • DATA_ENCRYPT
  • GSSPLUGIN
  • KERBEROS
  • 服务器
  • SERVER_ENCRYPT
ClientAccountingString   指定发送至数据库的客户机记帐字符串。
ClientApplicationName   指定发送至数据库的客户机应用程序名称。
ClientEncAlg   指定是否使用高级加密标准 (AES) 加密。 可接受的值为 AES
ClientUserID   指定发送至数据库的客户机用户标识。
ClientWorkStationName   指定发送至数据库的客户机工作站名称。
CodePage 0 指定代码页标识。
ConcurrentAccessResolution   指定表示并行存取解决方案的字符串值。 以下值可接受:
CurrentlyCommitted
使用数据的当前落实版本。
SkipLockedData
在发生记录锁定冲突的情况下跳过行。 SkipLockedData 选项仅受 Db2® for z/OS® V10 及更高版本服务器支持。
WaitForOutcome
遇到锁定行时等待落实或回滚操作。

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

对于 Db2 for IBM® i 服务器, ConcurrentAccessResolution 属性仅受 Db2 for IBM i V7R1 和更高版本的服务器支持。

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

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

CurrentFunctionPath   指定将用于解析动态 SQL 语句中的函数引用与数据类型引用的模式名称列表。
CurrentPackageSet   在每次连接后发出 SET CURRENT PACKAGESET 语句。
CurrentSchema   指定一个模式名称,用于限定与当前连接配合使用的所有非限定 SQL 对象。
CurrentSQLID   指定用于限定与 Db2 for z/OS 服务器的当前连接一起使用的所有未限定 SQL 对象的 SQLID。 在 Db2 for z/OS以外的服务器上,设置 CurrentSQLID 关键字等同于设置 CurrentSchema 关键字。
DB2Explain 确定服务器是否生成说明快照和/或说明表类型信息。 以下值可接受:
不会生成快照和表的说明信息。
快照
生成快照的说明信息。
SnapshotAndTable
生成快照和表的说明信息。
生成表的说明信息。
DBName 指定数据库名称。 仅当连接到 Db2 for z/OS 和 OS/390® 服务器时,并且仅当应用程序请求基本表目录信息时,才会使用此关键字。 如果 z/OS 或 OS/390 子系统中存在许多表,那么可以指定 DBName 关键字以减少应用程序查询表信息所需的时间,并减少结果集中的表信息量。
DelimIdent 指定已连接的 Informix® 数据库服务器 是否必须支持定界 SQL 标识。 DelimIdent 关键字可以设置为下列其中一个值:
0
假的 指示已连接的 Informix 数据库服务器 不必支持定界 SQL 标识。
1
是啊 指示已连接的 Informix 数据库服务器 必须支持定界 SQL 标识。
DisableCursorHold false
指示在落实事务后,在服务器上打开的游标将保持打开。 以下值可接受:
false
在落实事务后,在服务器上打开的游标将保持打开。
true
在落实事务后,在服务器上打开的游标将关闭。
Enlist true 指示是否允许在分布式事务协调程序 (DTC) 中登记。 以下值可接受:
false
不允许登记到 DTC。
true
允许登记到 DTC。 仅当连接时,COM+ 事务正在进行中时,才会登记。
FetchBufferSize 64K 指定缺省查询块大小以优化数据流。 IBM Data Server Provider for .NET 仅允许查询块大小为 32K 的倍数 (即 64K, 96K, 128K, 160K, 192K, 224K和 256K)。

如果 FetchBufferSize 值不是 32K 查询块大小的倍数,那么会将它四舍五入为最接近的 32K 倍数值(但是要在 64K - 256K 范围内)。 设置为超出有效范围 (64K - 256K) 的值,将四舍五入为有效范围内的下一个最接近的 32K 块大小。

FitHighPrecisionType ReturnException 指定 IBM Data Server Provider for .NET 如何将高精度数据转换为 .NET 系统类型。 以下值可接受:
AsString
将列转换为 .NET 字符串类型。
ReturnException
如果该值不适合 .NET 系统类型,那么会导致截断异常。
撤销
在以静默方式截断列值后(如果必要),会返回 .NET 系统类型。
HostVarParameter false 指示是否启用主变量 (:param) 支持。 以下值可接受:
false
禁用主变量支持。
true
启用主变量支持。
Interrupt

在 V10.5 GA 和 FP1 中:1

在 V10.5 FP2 和更高版本中:
  • 1 ,用于连接到除 Db2 for z/OS 服务器以外的所有数据库服务器
  • 2 ,用于连接到 Db2 for z/OS 服务器
指定中断处理方式。 以下值可接受:
0
禁用中断处理。
1
如果服务器支持中断,那么将发送中断。 否则,连接将被断开。
2
无论服务器是否具有中断功能,中断都会导致连接被断开。
Isolation Level | IsolationLevel   指定连接的隔离级别。 以下值可接受:
  • Chaos
  • ReadCommitted
  • ReadUncommitted
  • RepeatableRead
  • Serializable
  • 事务(transaction)
只有连接到 Db2 for IBM i 服务器的应用程序才支持 Chaos 选项。

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

LibraryList   指定服务器要为此连接加载的库。
Max Pool Size 无最大值 指定最大池大小。
Min Pool Size 0 指定最小池大小。
Persist Security Info false 指示是否返回安全性敏感信息。 以下值可接受:
false
不允许将安全性敏感信息作为连接字符串的一部分返回。 应避免公开安全性敏感信息。
true
允许在连接已打开后或曾打开的情况下,将安全性敏感信息(例如,密码)作为连接字符串的一部分返回。
Pooling true 指示是否禁用连接池。 以下值可接受:
false
禁用连接池。
true
启用连接池。
ProgramId   指定发送至数据库的程序标识。
ProgramName   指定发送至数据库的程序名。
QueryTimeout 指定等待 SQL 语句或 XQuery 表达式完成的秒数。 QueryTimeout 关键字指示在尝试取消执行并将控制权交回应用程序之前等待 SQL 语句或 XQuery 表达式完成执行的缺省秒数。 此关键字将覆盖 DB2Command.CommandTimeout 属性的缺省值 30 秒。
ResultArrayAsReturnValue false 指示是否将来自 Informix 用户定义的例程 (UDR) 的结果集作为类型为 ReturnValue的参数返回。 值如下所示:
false
不会以类型为 ReturnValue 的参数形式返回结果集。
true
将以类型为 ReturnValue 的参数形式返回结果集。
当参数集合中没有绑定 ReturnValue 参数时,会忽略此关键字。
RetrieveXMLInBinaryFormat false 指定是否以二进制格式返回 XML 数据。 以下值可接受:
false
不会以二进制格式返回 XML 数据。
true
将以二进制格式返回 XML 数据。
RetryParameterBindingOnError true 指示提供程序是否重复执行失败的语句。 以下值可接受:
false
IBM Data Server Provider for .NET 不会重新执行失败的语句。
true
IBM Data Server Provider for .NET 重新执行失败的语句。
SchemaList   指定包含模式列表的字符串值。 模式列表用于为那些列示数据库中的每个表的应用程序提供更具限制性的缺省值,从而帮助改进性能。
Security   指示是否使用 SSL 作为安全传输方法。 SSL 是可为 Security 关键字指定的唯一值。
SessionTimeZone   在 z/OS 服务器上设置 SESSION TIMEZONE 专用寄存器的值。
SkipSynonymProcessing false
指示 IBM Data Server Provider for .NET 是否可以在不通过 DB2ConnectionStringBuilder 类传递连接字符串的情况下向 DbPermission.Add 方法发送连接字符串。 以下值可接受:
false
IBM Data Server Provider for .NET 不会通过 DB2ConnectionStringBuilder 类发送连接字符串。
true
IBM Data Server Provider for .NET 通过 DB2ConnectionStringBuilder 类发送连接字符串。
SSLClientKeystash   指定用于 SSL 连接的 SSL 隐藏文件。
SSLClientKeystoredb   指定用于 SSL 连接的 SSL 密钥数据库文件。
SSLClientKeystoreDBPassword   设置与 CERTIFICATE 认证配合使用的密钥库数据库密码。
SSLClientLabel   设置唯一标签,此标签将映射至特定证书,以便与 CERTIFICATE 认证配合使用。
SSLServerCertificate   指定自签名服务器证书或认证中心 (CA) 证书的标准名称。
StatementConcentrator  
指示是否使用语句集中。 以下值可接受:
字面值
启用使用字面值行为的语句集中器。 将应用服务器端语句集中器限制。
禁用语句集中器。
如果您未设置此关键字,那么服务器配置将确定字面值替换行为。
TargetPrincipal  

指定目标服务器的标准 Kerberos 主体名称。 Db2 实例所有者的标准 Kerberos 主体名称,格式为 name@REALMinstance@REALM对于 Windows 操作系统,标准 Kerberos 主体名称Db2 服务器服务的登录帐户,格式为 userid@DOMAINuserid@xxx.xxx.xxx.com 或 domain\userid

TrustedContextSystemPassword | TCSPWD  

指定对应要与连接配合使用的可信上下文 SYSTEM AUTHID。

TrustedContextSystemUserID | TCSUID  

指定要与连接配合使用的可信上下文 SYSTEM AUTHID。

db2dumpSQLCodes  

指定在与 Db2 for z/OS 服务器的连接中迂到指定的 SQLCODE 时是否收集诊断日志。

注: 如果 db2dsdriver.cfg中也提到了 db2dumpSQLCodes 和 cfgRefreshInterval 关键字,那么在 cfgRefreshInterval 中指定的时间到期后,将优先使用 db2dsdriver.cfg 文件中指定的 db2dumpSQLCodes 值。
Db2DumpSQLCodesInterval  

指定未捕获 SQLCODE 日志记录信息的时间段(以秒计)。

TrustedContextUserRegistryName| TCURN   切换到可信连接时,在连接字符串中发送用户注册表名称。仅应在使用身份映射服务的 Db2 for z/OS 服务器上认证用户时使用。

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

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

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

示例

[Visual Basic , C#] 以下示例创建 DB2Connection 对象并在连接字符串中设置其某些属性:

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

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