步骤 2:创建命令(ADO 教程)

您所在的步骤...

?连接数据源。

 

?可选择创建表示 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