EXEC dbo.stTest1 @a1
EXEC dbo.stTest2 @a1, @b1 out
EXEC @c1 = dbo.stTest3 @a1
@a1:入力パラメーター
@b1:出力パラメーター
@c1:戻り値

プログラミング覚え書きなど
EXEC dbo.stTest1 @a1
EXEC dbo.stTest2 @a1, @b1 out
EXEC @c1 = dbo.stTest3 @a1
@a1:入力パラメーター
@b1:出力パラメーター
@c1:戻り値
ストアドでのパラメーター受け渡し
Dim cn As SqlClient.SqlConnection
Sub a()
Dim cmd As New SqlClient.SqlCommand
Try
Dim strSQL As String = “stTest”
cmd.Connection = cn
cmd.CommandText = strSQL
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Clear()
‘Return Value
cmd.Parameters.Add(“@Ret”, SqlDbType.Int).Direction = ParameterDirection.ReturnValue
‘入力パラメーター Input Parameters
cmd.Parameters.Add(“@ID”, SqlDbType.Int).Value = 1
cmd.Parameters.Add(“@a1”, SqlDbType.NVarChar).Value = “A”
cmd.Parameters.Add(“@a2”, SqlDbType.Decimal).Value = 1.52D
‘出力パラメーター Output Parameters
cmd.Parameters.Add(“@b1”, SqlDbType.Int).Direction = ParameterDirection.Output
‘Decimal型の出力パラメーターはPrecision(最大桁数)とScale(小数部桁数)の指定が必要.欄外の※も参照.
cmd.Parameters.Add(“@b2”, SqlDbType.Decimal).Direction = ParameterDirection.Output
cmd.Parameters(“@b2”).Precision = 4
cmd.Parameters(“@b2”).Scale = 2
Dim res As Integer = cmd.ExecuteNonQuery() ‘ストアド実行
If CInt(cmd.Parameters(“@Ret”).Value) = 1 Then
If Not IsDBNull(cmd.Parameters(“@b1”).Value) Then
Dim b1 As Integer = CInt(cmd.Parameters(“@b1”).Value)
‘コード
End If
End If
Finally
cmd.Dispose()
End Try
End Sub
Updated:
2010-10-23 Decimal型の例を追加.
※ Decimal型のPrecision(最大桁数)とScale(小数部桁数)の指定は入力パラメーターでは不要だが出力パラメーターでは必要.
ややこしいことに,Excel VBAでは,入力パラメーター・出力パラメーターどちらにも必要.
人は過去を追ってはならぬ.未来を願ってはならぬ.
およそ過ぎ去ったものはすでに捨てられており,また未来はまだやって来ていない.
そこで,知者は現在のことがらをいたるところで正しく観察し,揺がず動かずして,それを修習すべきである.
今日こそ,なすべきことを熱心になせ.
だれが明日,死の訪れることを予知できようぞ.
けだし,人はだれでも死魔の大軍と戦わないということがないからである.
熱心にして,昼夜に怠らずに住するこのような人,実にかれを善き聖者たちは”一日賢人”とたたえる.中部経典
ハマーショルドも似たようなことを言っています.
振り返るな.また,未来を夢見るな.
そんなことをしても,過去を返してはもらえないし,ほかのしあわせな夢想をも満たしてはもらえないのだから.
おまえの義務,おまえの褒賞-おまえの運命-はいま,ここにあるのだ.ダグ・ハマーショルド (1905 – 1961)
ことばシリーズは,私が本を読んだりして印象に残った言葉を書いていきます.
月1回くらいを目標にします.