VB中Execute是指ADO命令之一:Execute 方法。


  • Execute 方法,执行在 CommandText 属性中指定的查询、SQL 语句或存储过程。语法对于按行返回的 Command:
Set recordset = command.Execute( 
 RecordsAffected, Parameters, Options 
 )
对于不按行返回的 Command:
command.Execute RecordsAffected, 
 Parameters, Options
返回值
返回 Recordset 对象引用。

  • 参数
    RecordsAffected    可选,长整型变量
  • VB中Execute的用法_SQL

  • ,提供者向其返回操作所影响的记录数目。
    Parameters    可选,变体型数组,使用 SQL
    语句传送的参数值。(用该参数传送时输出参数将不返回正确值。)
  • CommandText 属性 (ADO),包含要发送给提供者的命令的文本。
  • Execute、Requery 和 Clear 方法范例该范例演示运行来自 Command 对象和 Connection 对象的 Execute 方法。同时使用 Requery 方法检索记录集中的当前数据,并用 Clear 方法清除 Errors 集合的内容。运行该过程需要 ExecuteCommand 和 PrintOutput 过程。Public Sub ExecuteX()
•    Dim strSQLChange As String
   Dim strSQLRestore As String
   Dim strCnn As String
   Dim cnn1 As ADODB.Connection
   Dim cmdChange As ADODB.Command
   Dim rstTitles As ADODB.Recordset
   Dim errLoop As ADODB.Error

   ' 定义两个 SQL 语句作为命令文本执行。
   strSQLChange = "UPDATE Titles SET Type = " & _
      "'self_help' WHERE Type = 'psychology'"
   strSQLRestore = "UPDATE Titles SET Type = " & _
      "'psychology' WHERE Type = 'self_help'"

   ' 打开连接。
      strCnn = "Provider=sqloledb;" & _
      "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
   Set cnn1 = New ADODB.Connection
   cnn1.Open strCnn

   ' 创建命令对象。
   Set cmdChange = New ADODB.Command
   Set cmdChange.ActiveConnection = cnn1
   cmdChange.CommandText = strSQLChange
   
   ' 打开标题表。
   Set rstTitles = New ADODB.Recordset
   rstTitles.Open "titles", cnn1, , , adCmdTable

   ' 打印原始数据报告。
   Debug.Print _
      "Data in Titles table before executing the query"
   PrintOutput rstTitles

   ' 清除 Errors 集合的外部错误。
   cnn1.Errors.Clear

   ' 调用 ExecuteCommand 子例程执行 cmdChange 命令。
   ExecuteCommand cmdChange, rstTitles
   
   ' 打印新数据报告。
   Debug.Print _
      "Data in Titles table after executing the query"
   PrintOutput rstTitles

   ' 使用 Connection 对象的 execute 方法执行 SQL 语句以恢复数据。
   ' 捕获错误,必要时检查 Errors 集合。
   On Error GoTo Err_Execute
   cnn1.Execute strSQLRestore, , adExecuteNoRecords
   On Error GoTo 0

   ' 通过再查询记录集检索当前数据。
   rstTitles.Requery

   ' 打印已恢复数据的报告。
   Debug.Print "Data after executing the query " & _
      "to restore the original information"
   PrintOutput rstTitles

   rstTitles.Close
   cnn1.Close
   
   Exit Sub
   
 Err_Execute:

   ' 将任何由执行查询引起的错误通知用户。
   If Errors.Count > 0 Then
      For Each errLoop In Errors
         MsgBox "Error number: " & errLoop.Number & vbCr & _
            errLoop.Description
      Next errLoop
   End If
   
   Resume Next

 End Sub

 Public Sub ExecuteCommand(cmdTemp As ADODB.Command, _
   rstTemp As ADODB.Recordset)

   Dim errLoop As Error
   
   ' 运行指定的 Command 对象。捕获错误,必要时检查 Errors 集合。
   On Error GoTo Err_Execute
   cmdTemp.Execute
   On Error GoTo 0

   '通过再查询记录集检索当前数据。
   rstTemp.Requery
   
   Exit Sub

 Err_Execute:

   ' 将任何由执行查询引起的错误通知用户。
   If Errors.Count > 0 Then
      For Each errLoop In Errors
         MsgBox "Error number: " & errLoop.Number & vbCr & _
            errLoop.Description
      Next errLoop
   End If
   
   Resume Next

 End Sub

 Public Sub PrintOutput(rstTemp As ADODB.Recordset)

   ' 枚举 Recordset。
   Do While Not rstTemp.EOF
      Debug.Print "  " & rstTemp!Title & _
         ", " & rstTemp!Type
      rstTemp.MoveNext
   Loop

 End Sub

本回答由 电脑网络分类达人 赵丽丽推荐