Проверьте, возвращает ли SQL-запрос какой-либо вывод - PullRequest
0 голосов
/ 27 июня 2018

У меня есть следующий оператор SQL (выполняется из моего сценария VBS):

exec DBABee. [Alerting]. [Usp_TShell] 'SpaceProblems_tempdb_only'

которые возвращают следующий вывод: enter image description here

Мой вопрос Как мне изменить мой скрипт VBS, чтобы пометить, когда упомянутое выше SQL-выражение возвращает какой-либо результат (в данном случае любые строки)? и как мне ввести результат в переменную?

Это мой сценарий:

Dim objCN, strConnection
Dim objAPI, oBag , srtReturn
Set objCN = CreateObject("ADODB.Connection")
Set objAPI = CreateObject("MOM.ScriptAPI")
Set oBag = objAPI.CreatePropertyBag()
strConnection = "Driver={SQL Server};Server=sqlsrv01,1433;Database=tempdb;Trusted_Connection=TRUE"
objCN.Open strConnection
Dim strSQLQuery
strSQLQuery = "exec DBABee.[Alerting].[usp_TShell] 'SpaceProblems_tempdb_only'"
Dim objRS
Set objRS=CreateObject("ADODB.Recordset")
Set objRS = objCN.Execute(strSQLQuery)
Do Until objRS.EOF

                if objRS.Fields("IsProblem") <> "0" then

                    Call oBag.AddValue("Status","Good")
                    Call oBag.AddValue("Result", objRS.Fields("IsProblem"))

                else
                    Call oBag.AddValue("Status","Bad")


                end if
                objRS.MoveNext
Loop
objRS.Close
Call objAPI.Return(oBag)

Я не знаком с этой областью VBScripting, Так что любая помощь будет очень цениться.

1 Ответ

0 голосов
/ 27 июня 2018

Вы можете использовать атрибут RecordCount , чтобы определить, было ли что-либо возвращено запросом. В вашем случае вы можете использовать

if (objRS.RecordCount > 0) Then
     ' There is data! 
else
     ' Nothing was returned
end if

Что касается получения значения из RecordSet (в вашем случае, objRS), используйте это:

Dim ExampleVar
Do Until ObjRS.EOF
    ExampleVar = objRS.Fields("ColumnName").Value
    objRS.MoveNext
Loop

Если ваша функция AddValue для oBag верна, похоже, что вы правильно извлекаете значения RecordSet

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...