此頁沒有內(nèi)容條目
內(nèi)容

步驟 3:執(zhí)行命令(ADO 教程)

您所在的步驟...

?連接數(shù)據(jù)源。

 

?可選擇創(chuàng)建表示 SQL 查詢命令的對象。

 

?可選擇在 SQL 命令中將值指定為變量參數(shù)。

 

?執(zhí)行命令。如果命令以行返回,將行存儲在存儲對象中。

 

?可選擇對數(shù)據(jù)進(jìn)行定位、檢查、操作和編輯。

 

?適當(dāng)情況下,可以使用存儲對象中的變更對數(shù)據(jù)源進(jìn)行更新??蛇x擇在事務(wù)處理中嵌入更新數(shù)據(jù)。

 

?在使用事務(wù)之后,可以接受或拒絕在事務(wù)中所做的更改。結(jié)束事務(wù)。

討論

返回 Recordset 的方法有三種:Connection.ExecuteCommand.Execute 以及 Recordset.Open。以下是它們的 Visual Basic 語法:

connection.Execute(CommandTextRecordsAffectedOptions)

command.Execute(RecordsAffectedParametersOptions)

recordset.Open SourceActiveConnectionCursorTypeLockTypeOptions

通過優(yōu)化這些方法可發(fā)揮特定對象的優(yōu)勢。

必須在發(fā)出命令之前打開連接,每個(gè)發(fā)出命令的方法分別代表不同的連接:

?Connection.Execute 方法使用由 Connection 對象自身表現(xiàn)的連接。

 

?Command.Execute 方法使用在其 ActiveConnection 屬性中設(shè)置的 Connection 對象。

 

?Recordset.Open 方法所指定的或者是連接字符串,或者是 Connection 對象操作數(shù);否則使用在其 ActiveConnection 屬性中設(shè)置的 Connection 對象。

另一個(gè)不同點(diǎn)是命令在三種方法中的指定方式:

?Connection.Execute 方法中,命令是字符串。

 

?Command.Execute 方法中,命令是不可見的,它在 Command.CommandText 屬性中指定。另外,此命令可含有參數(shù)符號 ('?'),它可以由“參數(shù)”VARIANT 數(shù)組參數(shù)中的相應(yīng)參數(shù)替代。

 

?Recordset.Open 方法中,命令是 Source 參數(shù),它可以是字符串或 Command 對象。

每種方法可根據(jù)性能需要替換使用:

?Execute 方法針對(但不局限)于執(zhí)行不返回?cái)?shù)據(jù)的命令。

 

?兩種 Execute 方法都可返回快速只讀、僅向前 Recordset 對象。

 

?Command.Execute 方法允許使用可高效重復(fù)利用的參數(shù)化命令。

 

?另一方面,Open 方法允許指定 CursorType (用于訪問數(shù)據(jù)的策略及對象)和 LockType (指定其他用戶的 isolation 級別以及游標(biāo)是否在 immediatebatch modes 中支持更新)。

 

?請深入了解這些選項(xiàng),它們體現(xiàn)了很多 Recordset 的功能。

本教程使用動態(tài)游標(biāo)對 Recordset 的所有變更進(jìn)行批處理,為此請使用以下方法:

Recordset rs = New ADODB.Recordset

rs.Open cmd, conn, adOpenDymanic, adLockBatchOptimistic

下一步   步驟 4