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

目录

您所在的步骤...

讨论

查询命令要求数据源返回含有所要求信息行的 Recordset 对象。命令通常使用 SQL 编写。

  1. 如上所述,“命令字符串”之类的操作数可表示为:
  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

www.holmesian.org