Mat Skywalker пишет:Но! Если текст запроса вида
То набора записей нет. А сообщение сервера есть. То есть мне надо не количество обработанных строк, а именно сообщение. Вот как его получить?
Набора записей конечно нет - команда его не возвращает(т.к. очищает таблицу без подсчёта удалённых записей). Что до сообщения от сервера, то какое?!
"The command(s) completed successfully." в QA это просто интерпритация того что команда выполнена без ошибок и не более того. В ответ на команду не возвращающую значения сервер может только сказать выполнена ли команда с ошибками или нет. Если требуется убедиться в том что команда выполена успешно, то достаточно отследить ошибки объекта MSSQLConn после выполнения MSSQLConn.Execute(Command_1) - если нет ошибок, значит "The command(s) completed successfully.".
strSQL = "TRUNCATE TABLE BAR"
On Error Resume Next
MSSQLConn.Execute(strSQL)
If MSSQLConn.Errors.Count > 0 Then ' обработка ошибок SQL
For Each E In MSSQLConn.Errors
wscript.echo "SQL_Error: " & E.Description
Next
End If
On Error Goto 0
Если и это не убеждает, то после "TRUNCATE TABLE BAR" можно сделать "SELECT count(*) FROM BAR" - если вернулось 0, то таблица очищена
.
В любом случае, обработку возможных ошибок при выполнении запроса лучше добавить. Я бы вообще выполнение запроса вынес в отдельную процедуру для каждого типового случая - селект отдельно, делет отдельно, транкейт отдельно. В дальнейшем эти процедуры легко скопипастить в другой код для повторного использования
.
Или я не совсем правильно понял что требуется сделать?