- - PR -
ストアドプロシージャの呼び出し(VB.NET)
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-09-05 14:15
いつもお世話になっております。
VB.NETの勉強を最近始めたばかりの初心者です。 ストアドプロシージャの呼び出しを行う際に、引数をうまく渡すことができません。 cmdAdo = New OleDbCommand("SP_NITIJICHECK", myConn.Connection) With cmdAdo .CommandType = CommandType.StoredProcedure par_1 = .Parameters.Add("RETURN_VALUE", OleDbType.Integer, 0) par_1.Direction = ParameterDirection.ReturnValue par_2 = .Parameters.Add("@cYYYYMMDD", OleDbType.Char, 8, TxtBox1.txt) par_2.Direction = ParameterDirection.Input par_3 = .Parameters.Add("@nTenCd", OleDbType.Integer, 2, 12) par_3.Direction = ParameterDirection.Input End With myConn.DbOpen() Try cmdAdo.ExecuteReader() myConn.DbClose() Catch o As Exception MsgBox(o.Message.ToString) End Try 上記のように引数を渡し、実行を行うと 「プロシージャ'SP_NITIJICHECK'にはパラメータ'@cYYYYMMDD'を指定してください」 というエラーが表示されます。 ちなみにプロシージャ'SP_NITIJICHECK'は一度実行させたことがあるので正しいはずです。 自分なりに調べましたが原因がわからないので、ご意見いただけますか。 | ||||
|
投稿日時: 2003-09-05 15:40
OleDbは使用したことがないのでわかりませんが、
TxtBox1には値が入っていますか? 日付に空文字列を指定した場合は下記のエラーになる可能性があります。 その場合はDBNull.Valueを指定すると回避されます。 一応、参考までに。 | ||||
|
投稿日時: 2003-09-05 15:58
ご返答ありがとうございます。
値はきちっと入力したのですが、エラーがでてしまいます・・・。 やはり引数の渡し方が間違えているのでしょうか? | ||||
|
投稿日時: 2003-09-05 16:25
ヘルプ ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/cpref/html/frlrfsystemdataoledboledbparametercollectionclassaddtopic6.htm を見る限り、4つ目の引数は値じゃないような気がします。 値はValueプロパティで設定するのではないでしょうか? | ||||
|
投稿日時: 2003-09-05 16:53
焼きそばさんありがとうございます!
最後の引数に値を持たせず、その直後にValueを使えばできました! ありがとうございました! | ||||
|
投稿日時: 2003-09-05 17:42
何度もすみません・・・。
おかげ様でストアドプロシージャを走らせることができたのですが、 その処理の途中で「時間切れです」というエラーがでます。 この原因がわかる方、ご意見おねがいします。 | ||||
|
投稿日時: 2003-09-05 18:07
ご迷惑おかけして申し訳ありません。
単純にタイムアウトの設定でした・・・。 |
1