以锁定应用程序资源(sp_getapplock / sp_releaseapplock)为例:
sp_getapplock没有返回参数(output类型的),只是在SP中用return来返回值
加锁:
> Dim cmd As ADODB.Command
> Set cmd = New ADODB.Command
> cmd.ActiveConnection = cnn
> cnn.BeginTrans
> cnn.Execute "use master"
> cmd.CommandType = adCmdStoredProc
> cmd.CommandText = "sp_getapplock"
> 系统识别格式为:'"{ ? = call sp_getapplock(?,?,?,?) }"
> cmd.Prepared = True
> cmd.Parameters(1) = "lock name" '资源锁的名称
> cmd.Parameters(2) = "Exclusive"
> cmd.Parameters(3) = "Transaction"
> cmd.Parameters(4) = 0 '用于接收SP 中return关键字返回的值
> cmd.Execute
> MsgBox cmd.Parameters(0) 'display return value
解锁:
> Dim cmd As ADODB.Command
> Set cmd = New ADODB.Command
> cmd.ActiveConnection = cnn
> cmd.CommandType = adCmdStoredProc
> cmd.CommandText = "sp_releaseapplock"
> cmd.Parameters(1) = "lock name" '被锁资源名称
> cmd.Parameters(2) = "Transaction"
> cmd.Execute
> MsgBox cmd.Parameters(0)