
No.1ベストアンサー
- 回答日時:
取得系ストアドの場合のサンプルです。
更新系ストアドの場合は
http://www.microsoft.com/japan/msdn/columns/vbne …
を参考にしてください。
--サンプルストアド
CREATE PROCEDURE ストアド
--ALTER PROCEDURE ストアド
@パラム1_VAR_I VARCHAR(12),
@パラム2_INT_I INT,
@パラム3_VAR_O VARCHAR(26) OUTPUT,
@パラム4_INT_IO INT OUTPUT
AS
--パラメータ3を'aa'
SET @パラム3_VAR_O = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
--パラメータ4を100倍
SET @パラム4_INT_IO = @パラム4_INT_IO * 100
--パラメータ1を返す
SELECT @パラム1_VAR_I AS パラメータ1
--パラメータ2の10倍をステータスとして返す
RETURN @パラム2_INT_I * 10
'標準ジュール[Module1.vb]
Imports System.Data.SqlClient
Module Module1
Sub Main()
Const DEF_ストアド名 As String = "ストアド"
'ユーザ名/パスワード/DB設定を修正してください
Dim l_sqlコネクション As SqlConnection = New SqlConnection("server=localhost;uid=ユーザ;pwd=パスワード;database=master")
Dim l_sqlコマンド As SqlCommand = New SqlCommand(DEF_ストアド名, l_sqlコネクション)
With l_sqlコマンド
'CommandTextの種別 = ストアド
.CommandType = CommandType.StoredProcedure
'パラメータ追加:戻り値
.Parameters.Add(パラメータ作成("@戻り値", SqlDbType.Int, 4, ParameterDirection.ReturnValue))
'パラメータ追加:引数(I/I/O/IO)
.Parameters.Add(パラメータ作成("@パラム1_VAR_I", SqlDbType.VarChar, 12, ParameterDirection.Input, "abcde"))
.Parameters.Add(パラメータ作成("@パラム2_INT_I", SqlDbType.Int, 4, ParameterDirection.Input, 2))
.Parameters.Add(パラメータ作成("@パラム3_VAR_O", SqlDbType.VarChar, 26, ParameterDirection.Output))
.Parameters.Add(パラメータ作成("@パラム4_INT_IO", SqlDbType.Int, 4, ParameterDirection.InputOutput, 3))
End With
'ストアド実行
Dim l_sqlアダプタ As New SqlDataAdapter(l_sqlコマンド)
Dim l_dstデータセット As New DataSet()
l_sqlアダプタ.Fill(l_dstデータセット)
'実行結果を出力
Dim i As Integer
Dim l_str結果 As String = ""
With l_sqlコマンド.Parameters
For i = 0 To .Count - 1
l_str結果 &= i & vbTab & .Item(i).ParameterName.ToString & vbTab & .Item(i).Value.ToString & vbCrLf
Next
End With
Call MsgBox(l_str結果, MsgBoxStyle.Information, "結果出力")
End Sub
'パラメータ作成関数
Private Function パラメータ作成( _
ByVal p_strパラメータ名 As String _
, ByVal p_dtpDBタイプ As System.Data.SqlDbType _
, ByVal p_intサイズ As Integer _
, ByVal p_pdrパラメータ種別 As System.Data.ParameterDirection _
, Optional ByVal p_obj初期値 As Object = Nothing _
) As SqlParameter
Dim l_sqlパラメータ As New SqlParameter(p_strパラメータ名, p_dtpDBタイプ, p_intサイズ)
l_sqlパラメータ.Direction = p_pdrパラメータ種別
l_sqlパラメータ.Value = IIf((p_obj初期値 Is Nothing), vbNull.Variant, p_obj初期値)
Return l_sqlパラメータ
End Function
End Module
この回答へのお礼
お礼日時:2005/09/15 10:30
Item(i).Valueで値が取れるんですね。勉強になりました。
ソースも参考にさせていただきます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL*LoaderのDATA引数
-
パーティション、未割当ての利...
-
ORA-01013のエラーについて経験...
-
Oracleで流したSQLのログを取得...
-
ORA-01843: 指定した月が無効で...
-
CASE文のエラーについて
-
PL/SQL PLS-00103エラーについて
-
4GB = 4096MB ではない?
-
ファイルへの書き込みができない
-
シェルスクリプトでオラクルの...
-
はじめまして!
-
DOSプロンプトとコマンドプロン...
-
表領域の作成について
-
サーバーの移行について(エク...
-
SQL*Plusで、コマンドの返答を...
-
フルインポートで警告が発生します
-
Oracle バッファ領域に...
-
クローンソフトで、Acronis Tru...
-
なぜ再起動すると空き領域が増...
-
ストアド・プロシージャをバッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL ServerのストアドでOUTPUT...
-
Console.ReadLine()で、入力デ...
-
VBでストアドの戻りパラメータ...
-
Perlファイルのパラメータの変数名
-
SQL*LoaderのDATA引数
-
インラインフレームでpdfフ...
-
モデル予測制御の簡単な使用方...
-
sedで編集対象ファイルのコメン...
-
REDOログファイルを移動したい...
-
oracle tnsping
-
パラメータについて
-
バッチファイル
-
特定ページのみブラウザのBACK...
-
ORA-01013のエラーについて経験...
-
Oracleで流したSQLのログを取得...
-
CASE文のエラーについて
-
xy平面上の点P(x,y)に対し,点Q(...
-
はじめまして!
-
北朝鮮のミサイルについて
-
PL/SQLでログを確認したい。
おすすめ情報