SQL Server で正常に動作するストアド プロシージャをセットアップしました。VBA から呼び出すことができるようになりましたが、エラーなどがあるかどうかを知るために値を返したいと考えています。SP の最後のパラメーターは OUTPUT として設定されています。
@DataSetID int = 0,
@Destination char(1)='-',
@errStatusOK bit OUTPUT
SP を呼び出すための VBA は以下のとおりですが、新しいパラメーターを追加した後は機能しません。どこが間違っているのかわかりません。次のようになり3708 - Parameter object is improperly defined. Inconsistent or incomplete information was provided.
ます。
Set cnn = New adodb.Connection
cnn.ConnectionString =
"DRIVER=SQL Server;SERVER=SERVER\SERVER;DATABASE=a_db;Trusted_Connection=Yes"
cnn.Open cnn.ConnectionString
Set cmd = New adodb.Command
cmd.ActiveConnection = cnn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "stprMoveDataSet"
Set param = cmd.CreateParameter
("@DataSetID", adInteger, adParamInput, , stDataSet)
cmd.Parameters.Append param
Set param = cmd.CreateParameter
("@Destination", adChar, adParamInput, 1, stDestination)
cmd.Parameters.Append param
Set param = cmd.CreateParameter
("@errStatusOK", adBit, adParamReturnValue)
cmd.Parameters.Append param
rs.CursorType = adOpenStatic
rs.CursorLocation = adUseClient
rs.LockType = adLockOptimistic
rs.Open cmd
vba を OUTPUT パラメータで動作させ、戻り値を vba で「読み取り可能」にする方法を教えてください。
編集 - 質問を変更して、出力パラメーターの使用だけでなく、値を返すことについてより具体的にしました。