今日は専門的なことを。
VBScriptからSQLServerのストアドプロシージャを呼び出す便利なサブルーチンを作った。
'----------------------------------------------
Sub execStored(adcn, adcm, adrs, storedName, pAry)
Dim i
Set adcm = Server.CreateObject("ADODB.Command")
Set adrs = Server.CreateObject("ADODB.Recordset")
Set adcm.ActiveConnection = adcn
adcm.CommandType = 4 'adCmdStoredProc
adcm.CommandText = storedName
For i = 0 To UBound(pAry)
adcm.Parameters(i + 1).Value = pAry(i)
Next
Set adrs = adcm.Execute
End Sub
'----------------------------------------------
呼び出す側は
Dim adcn, adcm, adrs, dsid
'adcnをDB接続しておいて
Call execStored(adcn, adcm, adrs, "spXXXXX", Array("s1", "", dsid))
等とすればパラメーターを一気に渡せてadrsにレコードセットが返る。
レコードセットでなく値を返すルーチンもこれを基に作れそうだ。
ストアドプロシージャは使えばよいことは知っていたが、どうもまどろっこしかった。
これでどんどん使えそう。
久々の決勝タイムリースリーベースくらい。
ストアドの呼び方、これが本流なのかわからないが、問題なく動いている。
Recent Comments