我有以下SQL语句(从我的VBS脚本运行):
exec DBABee。[警告]。[usp_TShell]'SpaceProblems_tempdb_only'
我的问题是, 我如何修改我的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的这一领域, 因此,我们将不胜感激。
答案 0 :(得分:0)
您可以使用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
假设您的oBag的AddValue函数正确无误,似乎您正在正确检索RecordSet值