- PR -

sqlserverのストアドの返り値について

1
投稿者投稿内容
きよよ
常連さん
会議室デビュー日: 2007/01/17
投稿数: 32
投稿日時: 2007-10-10 13:20
お世話になります。

環境:WinXP SqlServer2000 VB2005

VBからストアドを実行して、ストアドの返り値をVB側に返す
とゆうことを行いたいのですが、返り値として文字列が1バイトしか
返却されません。

クエリアナライザからストアドを実行すると、
 出力パラメータ:
@outSTATUS = 1
@outMSG = Eデータ作成失敗
と、結果が表示されるので、きちんと出力されているようです。

VB側は、
Dim comPRCMX600001 As New SqlCommand("PRCMX600001", conn, tran)
Dim prmOutStatus As SqlParameter = New SqlParameter("@outSTATUS", SqlDbType.TinyInt)
Dim prmOutMsg As SqlParameter = New SqlParameter("@outMSG", SqlDbType.VarChar)

prmOutStatus.Direction = ParameterDirection.Output
prmOutStatus.Value = 0
comPRCMX600001.Parameters.Add(prmOutStatus)

prmOutMsg.Direction = ParameterDirection.Output
prmOutMsg.Value = "テストです"
comPRCMX600001.Parameters.Add(prmOutMsg)

comPRCMX600001.ExecuteNonQuery()

''エラー処理
MsgBox("リターンコード = " & prmOutStatus.Value & " : 処理失敗" & prmOutMsg.Value, MsgBoxStyle.Critical)

ストアドが返している「Eデータ作成失敗」の最初の1バイトの「E」しか
VB側で受け取りません。

解決策をご存知の方いらしたら、ご教授お願いいたします。


べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-10-11 01:57
prmOutMsg.Value = "テストです"
の付近で
prmOutMsg.Size = 255
とかしたらうまくいきませんかね。
きよよ
常連さん
会議室デビュー日: 2007/01/17
投稿数: 32
投稿日時: 2007-10-15 17:24
べるさんから教えて頂いた方法で解決しました。

お返事ありがとうございました。
1

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