- PR -

VB2005でストアドプロシージャを実行しアウトパラメータを取得

1
投稿者投稿内容
LANVIN
大ベテラン
会議室デビュー日: 2007/03/12
投稿数: 211
投稿日時: 2007-08-21 13:38
 何度も、すいません。

VB2005でストアドプロシージャを実行しアウトパラメータを取得したいのですが
下記のコードをどのように変更するのか
ご教授して頂けないでしょうか?

Using MyCn As New SqlConnection("Persist Security Info=True;Integrated Security=false;User ID=nq;Password=nq;Initial Catalog=AOYDB;Data Source=Y01 ")
Using MyCmd As New SqlCommand
MyCn.Open()
With MyCmd
.Connection = MyCn
.CommandType = Data.CommandType.StoredProcedure
.CommandText = "ストアドプロシージャ名"
.Parameters.Add(New SqlParameter("NO", Data.SqlDbType.Int)).Value = pUKENO
End With
Using MyDA As New SqlDataAdapter(MyCmd)
Using MyDS As New DataSet
MyDA.Fill(MyDS)
End Using
End Using
End Using
End Using

すいません。
まるく
大ベテラン
会議室デビュー日: 2004/01/09
投稿数: 181
投稿日時: 2007-08-21 14:01
ストアドのコードがないから一般的に書くと、

コマンドパラメータに、アウトパラメータ受け取り用のパラメータを(ReturnValueかOutputタイプで)追加して、その Value プロパティから値を取得。です。

MsgBox MyCmd.Parameters("outParameterName").Value
LANVIN
大ベテラン
会議室デビュー日: 2007/03/12
投稿数: 211
投稿日時: 2007-08-21 15:06
まるくさん、ありがとうございます。

もう少しだけお願いします。

コマンドパラメータに、アウトパラメータ受け取り用のパラメータを追加すると
ありますが

アウトパラメータ受け取り用は下記の用にではなく
どのような指定になるのでしょうか?

Parameters.Add(New SqlParameter("NO", Data.SqlDbType.Int)).Value = pUKENO

宜しくお願いします。
めだか
大ベテラン
会議室デビュー日: 2004/11/11
投稿数: 109
投稿日時: 2007-08-21 16:00
Dim param1 As New SqlParameter
param1 = sqlcmd.Parameters.Add("@ret", SqlDbType.NVarChar, 20)
param1.Direction = ParameterDirection.Output
param1.Value = DBNull.Value

sqlrd = sqlcmd.ExecuteReader()
Return Convert.ToString(param1.Value)

こんな感じで使ってます

あと複数の値を返すならストアドプロシージャ内で
select @data1, @data2 として
datasetにfillする方が簡単かも
LANVIN
大ベテラン
会議室デビュー日: 2007/03/12
投稿数: 211
投稿日時: 2007-08-21 18:36
めだかさん、ありがとうございます。

MyCmd.Parameters.Add(New SqlParameter("CD", Data.SqlDbType.Int)).Value = 0
MyCmd.Parameters.Add(New SqlParameter("TYPE", Data.SqlDbType.Char)).Value = "I"
param1 = MyCmd.Parameters.Add("NO", SqlDbType.Int)
param1.Direction = ParameterDirection.Output
MyCmd.Connection = MyCn
rdr = MyCmd.ExecuteReader()

インのパラメータが2つ、アウトのパラメータが1つなので
上記のようなコーディングになってしまいましたが

なんとかできました。
1

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