2014-12-23 6 views
0

이 코드를 가지고 있고 그것이 작동하지 않는 내가 RUNQUERY 실행 라인 (SCCMConnectionString를 queryId에)VBScript를 SMS 쿼리

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) 
"하위를 호출 할 때 괄호를 사용할 수 없습니다"나에게 오류를 제공

답변

1

VBScript에서 하위을 호출 할 때 오류 메시지에 따라 괄호를 사용할 수 없습니다.

시도해보십시오. 그것은 작동해야합니다.

RunQuery SCCMConnectionString, queryId 
1

Sub 및 VBScript를 Function의 주요 차이점은 함수 값을 반환하고, 서브 없다는 것이다. 괄호는 함수를 호출하고 반환 값을 사용할 때 허용되거나 필요합니다. 그들은 정상적인 방법으로 sub를 호출 할 때 전혀 허용되지 않습니다.

RunQuery SCCMConnectionString, queryId 

여기에 더 많은 내용이수록 석사 문서입니다 : 여기

가 수정 된 라인 (# 30)의 호기심 VBScript Procedures

, 당신은을 사용하여 서브를 호출 할 경우 괄호를 사용하도록 허용 Call 명령.

Call RunQuery(SCCMConnectionString, queryId) 
+0

개인적으로, 나는 이것이 내 프로그래머에게 모피를 바르지 않게하는 VBScript 기능을 (수많은) 자극적 인 것으로 생각합니다. 나는 왜 MS가 이것을 이렇게 구현했는지에 대한 좋은 이유를 생각할 수 없다. – mojo