vbscript смс запрос по идентификатору запроса

У меня есть этот код, и он не работает, выдает ошибку "Невозможно использовать скобки при вызове Sub" в строке, где я запускаю RunQuery (SCCMConnectionString, queryId)

Sub RunQuery(connection, queryId)
    Dim query
    Dim queryResults
    Dim queryResult 


    ' Get query.
    Set query=connection.Get("SMS_Query.QueryID='" & queryId  & "'" )

    If err.number<>0 Then
        WScript.echo "Couldn't get Queries"
        Exit Sub
    End If

    ' Run query.
    WScript.echo query.Name
    WScript.echo "----------------------------------"

    Set queryResults=connection.ExecQuery(query.Expression)
    For Each queryResult In queryResults
        wscript.echo "     " & queryResult.Name
    Next
    If queryResults.Count=0 Then
        WScript.echo "      no query results"
    End If
End Sub

SCCMConnectionString = chr(34) & "Server=OAK-PRD-SCC01;Database=CM_TIM;trusted_connection=True" & chr(34)
queryID = "SMS024"
RunQuery (SCCMConnectionString, queryId)

2 ответа

Основная разница между Sub и Function в VBScript функция возвращает значение, а подпрограмма - нет. Скобки разрешены / обязательны при вызове функции и использовании ее возвращаемого значения. Они вообще не разрешены при вызове сабвуфера обычным способом.

Вот исправленная строка (#30):

RunQuery SCCMConnectionString, queryId

Вот документ MS, который идет более подробно: Процедуры VBScript

Любопытно, что вам разрешено использовать скобки, если вы вызываете подпрограмму, используя Call команда.

Call RunQuery(SCCMConnectionString, queryId)

Как говорится в сообщении об ошибке, вы не можете использовать parantheses при вызове sub в VBScript.

Попробуй это. Он должен работать.

 RunQuery SCCMConnectionString, queryId
Другие вопросы по тегам