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
Item(i).Valueで値が取れるんですね。勉強になりました。
ソースも参考にさせていただきます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server SQL ServerでDBを構築。これは開発? 4 2022/05/28 14:10
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- SQL Server SQL 期間内の実施数を合計したい 2 2023/03/03 22:28
- その他(プログラミング・Web制作) Rでのスクリプトのご相談 3 2022/12/08 16:22
- その他(ブログ) ブログの作成 2 2023/06/25 09:11
- その他(ブラウザ) python から COBOL を呼び出すことは可能でしょうか。 1 2023/04/21 21:03
- その他(開発・運用・管理) Windows serverでマルチキャスト通信の確認をしたいです。MicrosoftよりMPING 1 2023/03/31 01:05
- MySQL #1062 - '0' は索引 'PRIMARY' で重複しています。とでています。 1 2023/01/01 06:13
- Visual Basic(VBA) ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:16
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
VBでストアドの戻りパラメータを受け取る方法
Visual Basic(VBA)
-
VB.NETで小数点以下の桁数を取得したい
その他(ソフトウェア)
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
-
4
ストアドプロシジャからストアドプロシジャを呼ぶには?
Oracle
-
5
VBScriptからストアドプロシージャのOUT変数の取得について
Microsoft ASP
-
6
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
7
ストアドプロシージャで外部プログラムを起動するには?
SQL Server
-
8
【DB】同じトランザクション内でupdateとselectをしたときの結果値
その他(データベース)
-
9
SELECT 文 GROUP での1件目を取得
SQL Server
-
10
バッチで実行するVBScriptからのストアドプロシージャの実行
その他(プログラミング・Web制作)
-
11
DataGridViewでセルクリックイベントを発生させるには
Visual Basic(VBA)
-
12
VB.NET2005 TextBox 高さ(Height) 変更
Visual Basic(VBA)
-
13
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
14
VB.net 任意の例外を発生させるには・・・
Visual Basic(VBA)
-
15
ストアドをまたがるローカル一時テーブル
SQL Server
-
16
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
-
17
CloseとDisposeの違い
Visual Basic(VBA)
-
18
ワークテーブルの作成について
Visual Basic(VBA)
-
19
テーブルからのselectにおいてデータの有無により結果をわけたい
PostgreSQL
-
20
「タイプ初期化子が例外をスローしました」エラー何?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel別ウィンドウで開く
-
ORA-01013のエラーについて経験...
-
CASE文のエラーについて
-
SQL*Plusで、コマンドの返答を...
-
Oracleの起動時に、マウントし...
-
SQLLOADER
-
Oracleで空きがあるのにimport...
-
SQL実行結果の出力を見やすくし...
-
DOSプロンプトとコマンドプロン...
-
ORA-01843: 指定した月が無効で...
-
「ORA-00907: 右カッコがありま...
-
トレースファイルの削除スクリプト
-
batファイルでのSQL(oracle)...
-
表領域の作成について
-
PL/SQLのコンパイルエラーにつ...
-
ストアド・プロシージャをバッ...
-
Oracle バッファ領域に...
-
ストアドファンクションの実行
-
JavaでのOracle接続について(J...
-
4GB = 4096MB ではない?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBでストアドの戻りパラメータ...
-
SQL ServerのストアドでOUTPUT...
-
SQL*LoaderのDATA引数
-
Console.ReadLine()で、入力デ...
-
インラインフレームでpdfフ...
-
REDOログファイルを移動したい...
-
バッチファイル
-
MMAPのMAP_SHAREDについて
-
ORA-01013のエラーについて経験...
-
CASE文のエラーについて
-
DOSプロンプトとコマンドプロン...
-
PL/SQLでログを確認したい。
-
PL/SQLのコンパイルエラーにつ...
-
PL/SQL PLS-00103エラーについて
-
「ORA-00907: 右カッコがありま...
-
4GB = 4096MB ではない?
-
Oracleの起動時に、マウントし...
-
PCC-S-02201エラーの対処を教え...
-
はじめまして!
-
SQL*Plusで、コマンドの返答を...
おすすめ情報