您所在的步骤...
? | 连接数据源。 |
? | 可选择创建表示 SQL 查询命令的对象。 |
? | 可选择在 SQL 命令中将值指定为变量参数。 |
? | 执行命令。如果命令以行返回,将行存储在存储对象中。 |
? | 可选择对数据进行定位、检查、操作和编辑。 |
? | 适当情况下,可以使用存储对象中的变更对数据源进行更新。可选择在事务处理中嵌入更新数据。 |
? | 在使用事务之后,可以接受或拒绝在事务中所做的更改。结束事务。 |
讨论
查询命令要求数据源返回含有所要求信息行的 Recordset 对象。命令通常使用 SQL 编写。
1. | 如上所述,“命令字符串”之类的操作数可表示为: |
o | 代表字符串的文字串或变量。本教程可使用命令字符串“SELECT * from authors”查询 pubs 数据库中的 authors 表中的所有信息。 |
o | 代表命令字符串的对象。在这种情况下,Command 对象的 CommandText 属性的值设置为命令字符串。 |
Command cmd = New ADODB.Command;
cmd.CommandText = "SELECT * from authors"
2. | 使用占位符‘?’指定参数化命令字符串。 |
尽管 SQL 字符串的内容是固定的,您也可以创建“参数化”命令,这样在命令执行时占位符‘?’子字符串将被参数所替代。
使用 Prepared 属性可以优化参数化命令的性能,参数化命令可以重复使用,每次只需要改变参数。
例如,执行以下命令字符串将对所有姓“Ringer”的作者进行查询:
Command cmd = New ADODB.Command
cmd.CommandText = "SELECT * from authors WHERE au_lname = ?"
3. | 指定 Parameter 对象并将其追加到 Parameter 集合。 |
每个占位符‘?’将由 Command 对象 Parameter 集合中相应的 Parameter 对象值替代。 可将“Ringer”作为值来创建 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 现在可提供简易灵活的方法在单个步骤中创建 Parameter 对象并将其追加到 Parameter 集合。
cmd.Parameters.Append cmd.CreateParameter _
"au_lname", adVarChar, adInput, 40, "Ringer"
本教程将不使用参数化命令,因为需要使用 Command.Execute 方法以参数替代占位符‘?’,但该方法不允许指定 Recordset 游标类型和锁定选项。为此将使用如下代码:
Command cmd = New ADODB.Command;
cmd.CommandText = "SELECT * from authors"
下面列出表 authors 的模式以供查阅。
列名称 |
数据类型(长度) |
是否可为空 |
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