2017-10-05 5 views
0

vbscript를 사용하여 SQL 문을 성공적으로 실행할 때 SQL 메시지를 캡처해야합니다. 여기 내 코드가있다. 이 오류가 생략 될하는 명령문의 원인과 Err 객체를 설정하기 때문에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 
+0

'ExecuteSQLStatement_String' 또는'ExecuteAPI_String'에서받은 결과 메시지를 게시 한 경우 도움이 될 것입니다. – Lankymart

답변

0

문제는 여기에 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. 나는이 시도 : 그리고 오류 개체가 필요 얻고 '희미한 납입 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 = 널 그렇지 ExecuteSQLStatement_String = objRecordSet.Fields (COLNAME) .Value 최종면 끝 objRecordSet.Close 하면 오류에 고토 0 ' – user2329418

+0

죄송합니다. 위의 코드를 올바르게 포맷 할 수 없습니다. – user2329418