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   指定使用者 ID 的新密碼。
Password | PWD   指定密碼。
Server   指定具有直接連線選用埠號的伺服器名稱。 請使用 IPv4 表示法 (server_name|ip_address[:port]) 或 IPv6 表示法。
User ID | UID   指定使用者 ID。
表 2. pureQuery 關鍵字
關鍵字 預設值 說明
allowDynamicSQL 正確 指定應用程式是否可以動態執行 pureQueryXML 檔中未擷取或已擷取但未連結的任何 SQL 陳述式。
capturedOnly 不正確 指定是否只執行 pureQueryXML 檔中的 SQL 陳述式。
captureMode 關閉 指定是否擷取 SQL 陳述式的相關資訊,以及要擷取的資訊類型。 如果您同時將 captureMode 關鍵字設為 onexecutionMode 關鍵字設為 static,則會擲出錯誤。
enableDynamicSQLReplacement 不正確 指定當原始陳述式和替代陳述式都未連結時,是否要執行 pureQueryXML 檔中的替代 SQL 陳述式。
executionMode 動態 指出是否使用 pureQuery 技術靜態執行先前擷取的陳述式。 如果您同時將 captureMode 關鍵字設為 onexecutionMode 關鍵字設為 static,則會擲出錯誤。
maxNonParmSQL -1 指定要擷取的非參數化 SQL 陳述式數目上限。 僅當 captureMode 關鍵字的值為 ON時,此關鍵字才適用。 當 captureMode 關鍵字的值為 OFF時,系統不處理 maxNonParmSQL 關鍵字值。
propertiesGroupId   在儲存庫中指定建立於資料庫內的執行時期群組 ID。
pureQueryXML   指定 pureQuery 擷取檔的檔名及路徑。
pureQueryXmlRepository   指定包含 pureQueryXML 檔案資料的儲存庫,該檔案資料與已啟用 pureQuery 用戶端最佳化的 .NET 應用程式搭配使用。
repositoryRequired 指定在擷取或寫入 pureQuery 資料期間發生錯誤時,pureQuery 用戶端最佳化的行為。
sqlLiteralSubstitution NOT_SET 指定是否透過讓 pureQuery 用戶端替代文字值的參數標記,來擷取及合併共用語法且僅在文字值中不同的 SQL 陳述式。
traceFile 指定 pureQuery 日誌檔的名稱。
traceLevel 關閉 指定要寫入至日誌檔的詳細程度。
表 3. 其他關鍵字
關鍵字 預設值 說明
Authentication   指定鑑別類型。 可接受下列值:
  • 憑證
  • DATA_ENCRYPT
  • GSSPLUGIN
  • KERBEROS
  • 伺服器
  • SERVER_ENCRYPT
ClientAccountingString   指定傳送至資料庫的用戶端帳戶字串。
ClientApplicationName   指定傳送至資料庫的用戶端應用程式名稱。
ClientEncAlg   指定是否使用進階加密標準 (AES) 加密。 可接受的值為 AES
ClientUserID   指定傳送至資料庫的用戶端使用者 ID。
ClientWorkStationName   指定傳送至資料庫的用戶端工作站名稱。
CodePage 0 指定字碼頁 ID。
ConcurrentAccessResolution   指定代表並行存取解決方案的字串值。 可接受下列值:
CurrentlyCommitted
使用目前已確定的資料版本。
SkipLockedData
如果發生記錄鎖定衝突,請跳過列。 只有 Db2® for z/OS® 第 10 版以及更新版本伺服器才支援 SkipLockedData 選項。
WaitForOutcome
當遇到鎖定列時,等待確定或回復動作。

如果用戶端未提供 ConcurrentAccessResolution 關鍵字值,資料庫伺服器會定義預設行為。

對於 Db2 for IBM® i 伺服器,只有 Db2 for IBM i V7R1 以及更新版本伺服器才支援 ConcurrentAccessResolution 內容。

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   指定 SQLID ,用來限定與 Db2 for z/OS 伺服器現行連線搭配使用的所有不完整 SQL 物件。 在 Db2 for z/OS以外的伺服器上,設定 CurrentSQLID 關鍵字相當於設定 CurrentSchema 關鍵字。
DB2Explain 關閉 決定伺服器是否產生 Explain Snapshot、Explain 表格或這兩種類型的資訊。 可接受下列值:
關閉
不產生 Snapshot 及表格的「解譯」資訊。
Snapshot
產生 Snapshot 的「解譯」資訊。
Snapshot 及表格
產生 Snapshot 及表格的「解譯」資訊。
table
產生表格的解譯資訊。
DBName 指定資料庫名稱。 只有在連接 Db2 for z/OS 和 OS/390® 伺服器時,以及應用程式要求基本表格型錄資訊時,才會使用這個關鍵字。 如果 z/OS 或 OS/390 子系統中有許多表格,您可以指定 DBName 關鍵字,以減少應用程式查詢表格資訊所花費的時間,並減少結果集中的表格資訊量。
DelimIdent 指定連接的 Informix® 資料庫伺服器 是否必須支援定界 SQL ID。 DelimIdent 關鍵字可以設為下列其中一個值:
0
是假的 指出連接的 Informix 資料庫伺服器 不需要支援定界 SQL ID。
1
沒錯 指出連接的 Informix 資料庫伺服器 必須支援定界 SQL ID。
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)。

非 32K 查詢區塊大小的倍數的 FetchBufferSize 值在 64K-256K範圍內時,會四捨五入至下一個最接近的 32K 界限。 在有效範圍 (64K 至 256K) 之外設定的值會四捨五入至有效範圍內下一個最接近的 32K 區塊大小。

FitHighPrecisionType 傳回異常狀況 指定 IBM Data Server Provider for .NET 如何將高精準度資料轉換為 .NET 系統類型。 可接受下列值:
如字串
將直欄轉換為 .NET 字串類型。
傳回異常狀況
如果值不符合 .NET 系統類型,則會導致截斷異常狀況。
WithTruncate
必要的話,在無聲自動截斷直欄值之後傳回 .NET 系統類型。
HostVarParameter false 指出是否啟用主變數 (:param) 支援。 可接受下列值:
false
已停用主變數支援。
true
已啟用主變數支援。
Interrupt

在 10.5 版 GA 及 Fix Pack 1 中: 1

在 10.5 版 Fix Pack 2 以及更新版本中:
  • 1 ,用於連線至 Db2 for z/OS 伺服器以外的所有資料庫伺服器
  • 2 ,用於與 Db2 for z/OS 伺服器的連線
指定岔斷處理模式。 可接受下列值:
0
已停用岔斷處理。
1
如果伺服器支援岔斷,則會傳送岔斷。 否則,會捨棄連線。
2
不論伺服器的岔斷功能為何,岔斷都會導致捨棄連線。
Isolation Level | IsolationLevel   指定連線的隔離層次。 可接受下列值:
  • 混亂
  • 已確定讀取
  • ReadUncommitted
  • RepeatableRead
  • 可序列化
  • 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   指定傳送至資料庫的程式 ID。
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 是否可以將連線字串傳送至 DbPermission.Add 方法,而不透過 DB2ConnectionStringBuilder 類別傳遞連線字串。 可接受下列值:
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();
}