您所在的步驟...
? | 連接數(shù)據(jù)源。 |
? | 可選擇創(chuàng)建表示 SQL 查詢命令的對象。 |
? | 可選擇在 SQL 命令中將值指定為變量參數(shù)。 |
? | 執(zhí)行命令。如果命令以行返回,將行存儲在存儲對象中。 |
? | 可選擇對數(shù)據(jù)進行定位、檢查、操作和編輯。 |
? | 適當(dāng)情況下,可以使用存儲對象中的變更對數(shù)據(jù)源進行更新。可選擇在事務(wù)處理中嵌入更新數(shù)據(jù)。 |
? | 在使用事務(wù)之后,可以接受或拒絕在事務(wù)中所做的更改。結(jié)束事務(wù)。 |
討論
查詢命令要求數(shù)據(jù)源返回含有所要求信息行的 Recordset 對象。命令通常使用 SQL 編寫。
1. | 如上所述,“命令字符串”之類的操作數(shù)可表示為: |
o | 代表字符串的文字串或變量。本教程可使用命令字符串“SELECT * from authors”查詢 pubs 數(shù)據(jù)庫中的 authors 表中的所有信息。 |
o | 代表命令字符串的對象。在這種情況下,Command 對象的 CommandText 屬性的值設(shè)置為命令字符串。 |
Command cmd = New ADODB.Command;
cmd.CommandText = "SELECT * from authors"
2. | 使用占位符‘?’指定參數(shù)化命令字符串。 |
盡管 SQL 字符串的內(nèi)容是固定的,您也可以創(chuàng)建“參數(shù)化”命令,這樣在命令執(zhí)行時占位符‘?’子字符串將被參數(shù)所替代。
使用 Prepared 屬性可以優(yōu)化參數(shù)化命令的性能,參數(shù)化命令可以重復(fù)使用,每次只需要改變參數(shù)。
例如,執(zhí)行以下命令字符串將對所有姓“Ringer”的作者進行查詢:
Command cmd = New ADODB.Command
cmd.CommandText = "SELECT * from authors WHERE au_lname = ?"
3. | 指定 Parameter 對象并將其追加到 Parameter 集合。 |
每個占位符‘?’將由 Command 對象 Parameter 集合中相應(yīng)的 Parameter 對象值替代。 可將“Ringer”作為值來創(chuàng)建 Parameter 對象,然后將其追加到 Parameter 集合:
Parameter prm = New ADODB.Parameter
prm.Name = "au_lname"
prm.Type = adVarChar
prm.Direction = adInput
prm.Size = 40
prm.Value = "Ringer"
cmd.Parameters.Append prm
4. | 使用 CreateParameter 方法指定并追加 Parameter 對象。 |
ADO 現(xiàn)在可提供簡易靈活的方法在單個步驟中創(chuàng)建 Parameter 對象并將其追加到 Parameter 集合。
cmd.Parameters.Append cmd.CreateParameter _
"au_lname", adVarChar, adInput, 40, "Ringer"
本教程將不使用參數(shù)化命令,因為需要使用 Command.Execute 方法以參數(shù)替代占位符‘?’,但該方法不允許指定 Recordset 游標(biāo)類型和鎖定選項。為此將使用如下代碼:
Command cmd = New ADODB.Command;
cmd.CommandText = "SELECT * from authors"
下面列出表 authors 的模式以供查閱。
列名稱 |
數(shù)據(jù)類型(長度) |
是否可為空 |
au_id |
ID (11) |
否 |
au_lname |
varchar(40) |
否 |
au_fname |
varchar(20) |
否 |
Phone |
char(12) |
否 |
Address |
varchar(40) |
是 |
City |
varchar(20) |
是 |
State |
char(2) |
是 |
Zip |
char(5) |
是 |
Contract |
bit |
否 |
下一步 步驟 3