Connection 對象代表打開的、與數(shù)據(jù)源的連接。
說明
Connection 對象代表與數(shù)據(jù)源進(jìn)行的唯一會話。如果是客戶端/服務(wù)器數(shù)據(jù)庫系統(tǒng),該對象可以等價(jià)于到服務(wù)器的實(shí)際網(wǎng)絡(luò)連接。取決于提供者所支持的功能,Connection 對象的某些集合、方法或?qū)傩杂锌赡軣o效。
使用 Connection 對象的集合、方法、和屬性可執(zhí)行下列操作:
? | 在打開連接前使用 ConnectionString、ConnectionTimeout 和 Mode 屬性對連接進(jìn)行配置。 |
? | 設(shè)置 CursorLocation 屬性以便調(diào)用支持批更新的“客戶端游標(biāo)提供者”。 |
? | 使用 DefaultDatabase 屬性設(shè)置連接的默認(rèn)數(shù)據(jù)庫。 |
? | 使用 IsolationLevel 屬性為在連接上打開的事務(wù)設(shè)置隔離級別。 |
? | 使用 Provider 屬性指定 OLE DB 提供者。 |
? | 使用 Open 方法建立到數(shù)據(jù)源的物理連接。使用 Close 方法將其斷開。 |
? | 使用 Execute 方法執(zhí)行對連接的命令,并使用 CommandTimeout 屬性對執(zhí)行進(jìn)行配置。 |
? | 可使用 BeginTrans、CommitTrans 和 RollbackTrans 方法以及 Attributes 屬性管理打開的連接上的事務(wù)(如果提供者支持則包括嵌套的事務(wù))。 |
? | 使用 Errors 集合檢查數(shù)據(jù)源返回的錯誤。 |
? | 通過 Version 屬性讀取使用中的 ADO 執(zhí)行版本。 |
? | 使用 OpenSchema 方法獲取數(shù)據(jù)庫模式信息。 |
注意 如果不使用 Command 對象執(zhí)行查詢,請向 Connection 對象的 Execute 方法傳送查詢字符串。但是,當(dāng)需要使命令文本具有持久性并重新執(zhí)行,或使用查詢參數(shù)的時候,則必須使用 Command 對象。
可以創(chuàng)建獨(dú)立于先前定義的其他任何對象的 Connection 對象。
注意 可以象執(zhí)行 Connection 對象的本地方法一樣執(zhí)行命令或存儲過程。
如果要執(zhí)行命令,可以使用 Command 對象的 Name 屬性給命令指定一個名稱。將 Command 對象的 ActiveConnection 屬性設(shè)置為該連接。然后,象發(fā)出 Connection 對象的方法一樣發(fā)出使用命令名稱的語句,后面可帶任何參數(shù)(如果有返回行,則后面帶 Recordset 對象)。設(shè)置 Recordset 屬性以便自定義所產(chǎn)生的記錄集。例如:
Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset
...
cnn.Open "..."
cmd.Name = "yourCommandName"
cmd.ActiveConnection = cnn
...
'命令名稱、任意參數(shù)、以及可選記錄集。
cnn.yourCommandName "parameter", rst
要執(zhí)行存儲過程,可以如同發(fā)出 Connection 對象的方法一樣發(fā)出使用存儲過程名稱的語句,后面可帶任何參數(shù)。ADO 將對參數(shù)類型進(jìn)行“最佳判斷”。例如:
Dim cnn As New ADODB.Connection
...
'存儲過程名稱及任意參數(shù)。
cnn.sp_yourStoredProcedureName "parameter"