- PR -

VB6.0 から T-SQL の「引数ありのストアド」を実行するコーディング

1
投稿者投稿内容
Neverland
ベテラン
会議室デビュー日: 2006/11/27
投稿数: 56
投稿日時: 2006-12-11 19:41
どなたか教えてください。

VB6.0にて、下記の様にしてストアドを実行しています。
このストアド"test_procedure" に引数が無ければ良いのですが、引数があった場合、このままのコーディング"test_procedure" では「引数が必要」といったエラーになります。
ストアドは、「CREATE PROCEDURE test_procedure(@処理区分 char(1))」で作成しています。
例えば、"test_procedure 5"、または"test_procedure '5'" とすると「構文エラー」となります。
引数がある場合、どういうコーディングをすれば良いのでしょうか?
よろしくお願いいたします。

Dim objCommand As ADODB.Command
Dim Ret As Boolan

With objCommand

.CommandText = "test_procedure" '<< 引数があった時の書き方は?
.CommandType = adCmdStoredProc
.Parameters.Append objCommand.CreateParameter("RetVal", adInteger, adParamReturnValue)
.Execute

If .Parameters("RetVal").Value = 9 Then
Ret = True
Else
Ret = False
End If

End With
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-12-11 20:24
引用:

Neverlandさんの書き込み (2006-12-11 19:41) より:

VB6.0にて、下記の様にしてストアドを実行しています。
このストアド"test_procedure" に引数が無ければ良いのですが、引数があった場合、このままのコーディング"test_procedure" では「引数が必要」といったエラーになります。


Parameters に設定されてさえいれば、不要のハズですが...
Parameters の中身はどうなっているか、デバッグしてみてください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Neverland
ベテラン
会議室デビュー日: 2006/11/27
投稿数: 56
投稿日時: 2006-12-12 08:52
じゃんぬねっと さんありがとうございます。
再度調査し直してみます。
zzzing
会議室デビュー日: 2006/12/12
投稿数: 2
投稿日時: 2006-12-12 22:49
adParamReturnValueは、プロシジャの復帰値を受け取るparameterですから
これだけだと、@処理区分の分が足りないのでは。

.Parameters.Append objCommand.CreateParameter("処理区分", adChar, adParamOutput,1)
みたいな感じ。
Neverland
ベテラン
会議室デビュー日: 2006/11/27
投稿数: 56
投稿日時: 2006-12-13 09:33
zzzing さんありがとうございます。
ご指摘の通り付け加えて、うまくいったことを確認しました。
助かりました。ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)