2

必ずしも VBScript からストアド プロシージャに変数を渡す必要はありません。サーバー上でストアド プロシージャを実行するだけで済みます。これを行う方法の明確な例を見つけることができませんでした。多くの人が変数を SP から VBScript に戻す方法を説明しているだけです。

どんな助けでも大歓迎です!接続を開き、コマンドを送信してストアド プロシージャを実行し、接続を閉じる必要があるように見えますが、VBscript からこれを行う方法について少し迷っています。

ありがとう!

4

2 に答える 2

8

ADODB.ConnectionVbScriptのオブジェクトを使用できます

このサンプルを確認してください

Dim sServer, sConn, oConn, sDatabaseName, sUser, sPassword
sDatabaseName="test"
sServer="localhost"
sUser="sa"
sPassword="yourpassword"
sConn="provider=sqloledb;data source=" & sServer & ";initial catalog=" & sDatabaseName

Set oConn = CreateObject("ADODB.Connection")
oConn.Open sConn, sUser, sPassword
oConn.Execute "exec sp_help"

WScript.Echo "executed"
oConn.Close
Set oConn = Nothing
于 2011-05-13T21:35:28.880 に答える
2

次のようなメソッドを作成できます。

Public Sub ExecuteSql( sqlString )
    Dim oConn
    Set oConn = Server.CreateObject("ADODB.Connection")
    oConn.Open connectionString
    oConn.Execute( CStr(sqlString) )
    oConn.Close
    Set oConn = Nothing
End Sub

: このルーチンは、SQL ステートメントが呼び出しルーチンによって作成され、適切にエスケープされていることを前提としています。さらにconnectionString、データベースへの接続文字列とともにどこかに保存する定数です。

呼び出しの例:

Call ExecuteSql( "exec MyProc" )
于 2011-05-13T21:25:30.637 に答える