2017-10-05 16 views
0

vbscriptを使用してSQL文を正常に実行すると、SQLメッセージをキャプチャする必要があります。ここに私のコードです。VBScriptを使用してデータベースを正常に実行したときのメッセージ

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 
+0

「ExecuteSQLStatement_String」または「ExecuteAPI_String」から受け取った結果のメッセージを投稿した場合に役立つでしょうか。 – Lankymart

答えて

0

それがエラーをスキップすることを任意のステートメントを起こし、Errオブジェクトを設定しますので、ここでの問題は、On Error Resume Nextの使用です。 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のコメントを外すことができます。

+0

ありがとう@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 = Trueの場合、ExecuteSQLStatement_String = NULL エルスExecuteSQLStatement_String = objRecordSet.Fields(COLNAME).Valueの エンド END IF はエラー後藤0で をobjRecordSet.Close場合' – user2329418

+0

上記のコードを正しくフォーマットできません。 – user2329418

関連する問題