I'm trying to return two values from my VBScript and stored them in separate property bags:
Contains the result of the
If
conditionCall oBag.AddValue("Status","Bad") Call objAPI.AddItem(oBag) Else Call oBag.AddValue("Status","Good") Call objAPI.AddItem(oBag)
Contains the output of the SQL query that been executed
Call oBag.AddValue("Count",objRS.Fields("CountStuff")) Call objAPI.AddItem(oBag)
for passing on next to SCOM.
But while debugging, I'm getting the following error:
(41,1) ADODB.Field: Either BOF or EOF is True, or the current record has beed deleted. Requsted operation requires a current record.
Here is the full VBScript:
Dim objCN, strConnection
Dim objAPI, oBag
Set objCN = CreateObject("ADODB.Connection")
Set objAPI = CreateObject("MOM.ScriptAPI")
Set oBag = objAPI.CreateTypedPropertyBag(2)
strConnection = "Driver={SQL Server};Server=SCOMSRVDB01,2880;Database=DBABee;Trusted_Connection=TRUE"
objCN.Open strConnection
Dim strSQLQuery
strSQLQuery = "Select COUNT (*) as CountStuff from sys.objects"
Dim objRS
Set objRS = CreateObject("ADODB.Recordset")
Set objRS = objCN.Execute(strSQLQuery)
'WScript.Echo (objRS.Fields("CountStuff"))
Call oBag.AddValue("Count", objRS.Fields("CountStuff"))
Call objAPI.AddItem(oBag)
Do Until objRS.EOF
'WScript.Echo objRS.Fields("CountStuff")
If objRS.Fields("CountStuff") > 0 Then
'WScript.Echo "evaluated as bad"
Call oBag.AddValue("Status","Bad")
Call objAPI.AddItem(oBag)
Else
Call oBag.AddValue("Status","Good")
Call objAPI.AddItem(oBag)
End If
objRS.MoveNext
Loop
Call objAPI.ReturnItems
objRS.Close
'Property[@Name='Status']