
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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
【VBA】 結合セルに複数画像と...
-
【マクロ】並び替えの範囲が、...
-
【マクロ】開いているブックの...
-
VBAでCOPYを繰り返すと、処理が...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【ExcelVBA】5万行以上のデー...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教え...
-
vb.net(vs2022)のtextboxのデザ...
-
Vba セルの4辺について罫線が有...
-
エクセルのVBAコードと数式につ...
-
エクセルの改行について
-
VBA ユーザーフォーム ボタンク...
-
Excelマクロで使うVBAコードを...
-
VBAの質問(Msgboxについて)です
-
VBAでセルの書式を変えずに文字...
-
【ExcelVBA】値を変更しながら...
-
【マクロ】変数を使った、文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL*LoaderのDATA引数
-
SQL ServerのストアドでOUTPUT...
-
VBでストアドの戻りパラメータ...
-
Console.ReadLine()で、入力デ...
-
REDOログファイルを移動したい...
-
oracle tnsping
-
ファイル操作について
-
ORA-01013のエラーについて経験...
-
Oracleで流したSQLのログを取得...
-
DOSプロンプトとコマンドプロン...
-
PL/SQL PLS-00103エラーについて
-
CASE文のエラーについて
-
xy平面上の点P(x,y)に対し,点Q(...
-
ORA-01843: 指定した月が無効で...
-
はじめまして!
-
クローンソフトで、Acronis Tru...
-
SQL*Plusで、コマンドの返答を...
-
Oracleの起動時に、マウントし...
-
PL/SQLでログを確認したい。
-
4GB = 4096MB ではない?
おすすめ情報