使用VBScript在成功执行sql语句时需要捕获sql消息使用VBScript在成功执行sql语句时返回数据库消息
使用VBScript成功执行sql语句时需要捕获sql消息。这是我的代码。使用VBScript在成功执行sql语句时需要捕获sql消息使用VBScript在成功执行sql语句时返回数据库消息
Public Function ExecuteAPI_String(sql_Statement)
Dim num
On Error Resume Next
Set objRecordSet = objConnection.Execute sql_Statement,num,adExecuteNoRecords
If Err.Number <> 0 Then
ExecuteSQLStatement_String = Err.description
objRecordSet.Close
Err.Clear
Else
ExecuteAPI_String = num & "records were affected"
objRecordSet.Close
End If
这里的问题是使用On Error Resume Next
,因为这将导致跳过错误的陈述,并设置Err
对象。如果你注释掉On Error Resume Next
,你会看到实际的错误,这与你的SQL查询的执行无关,
Set objRecordSet = objConnection.Execute sql_Statement,num,adExecuteNoRecords
不是一个有效的声明,因为方法需要用括号括起来;
Set objRecordSet = objConnection.Execute(sql_Statement, num, adExecuteNoRecords)
你还需要确保所有你传递给Execute()
方法的值是有效(如adExecuteNoRecords
被正确定义)。
一旦你确定该行正确执行,那么你可以取消注释On Error Resume Next
。
谢谢@Lankymart。我尝试这样做:和我得到所需要的错误对象 '昏暗NUM Err.Clear 集objRecordSet = connStr.Execute(Sql_Statement,NUM,ADODB.ExecuteOptionEnum.adExecuteNoRecords) 如果Err.Number的 0,则 ExecuteSQLStatement_String = Err.Description Err.Clear 否则如果ISNULL(objRecordSet)或objRecordSet.EOF =真,那么ExecuteSQLStatement_String = NULL 否则ExecuteSQLStatement_String = objRecordSet.Fields(colname的)。价值 结束如果 结束如果 objRecordSet.Close 对错误转到0 ' – user2329418
抱歉无法正确格式化上面的代码。 – user2329418
如果您发布从“ExecuteSQLStatement_String”或“ExecuteAPI_String”收到的结果消息,会有帮助。 – Lankymart