![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.3ベストアンサー
- 回答日時:
#2のxcrOSgS2wYさんが飛ばしているリンク先の、.NETサンプルを書いた者です。
.NETからVB6へのコンバートをやってみました。
(いつもと逆方向への変換なので、違和感がありました^^;;;)
ストアドは、参考URLのまま利用しています。
Option Explicit
Sub Main()
Const DEF_ストアド名 As String = "ストアド"
Dim l_adoCnn As ADODB.Connection
Dim l_adoCmd As ADODB.Command
Dim l_adoRec As ADODB.Recordset
Set l_adoCnn = New ADODB.Connection
Set l_adoCmd = New ADODB.Command
'コネクション設定
l_adoCnn.CursorLocation = adUseClient '← これ重要、結構忘れられる。
l_adoCnn.Open "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=master;uid=sa;pwd=sa"
With l_adoCmd
'コネクションをコマンドに設定
Set .ActiveConnection = l_adoCnn
'コマンド種別 = ストアド
.CommandType = adCmdStoredProc
'ストアド名を指定
.CommandText = DEF_ストアド名
'パラメータ追加:戻り値
.Parameters.Append パラメータ作成(l_adoCmd, "@戻り値", adInteger, 4, adParamReturnValue)
'パラメータ追加:引数(I/I/O/IO)
.Parameters.Append パラメータ作成(l_adoCmd, "@パラム1_VAR_I", adVarChar, 12, adParamInput, "abcde")
.Parameters.Append パラメータ作成(l_adoCmd, "@パラム2_INT_I", adInteger, 4, adParamInput, 2)
.Parameters.Append パラメータ作成(l_adoCmd, "@パラム3_VAR_O", adVarChar, 26, adParamOutput)
.Parameters.Append パラメータ作成(l_adoCmd, "@パラム4_INT_IO", adInteger, 4, adParamInputOutput, 3)
End With
'ストアド実行
Set l_adoRec = l_adoCmd.Execute
'実行結果を出力
Dim i As Integer
Dim l_str結果 As String
With l_adoCmd
For i = 0 To .Parameters.Count - 1
l_str結果 = l_str結果 & i & vbTab & .Parameters(i).Name & vbTab & .Parameters(i).Value & vbCrLf
Next
End With
Call MsgBox(l_str結果, vbInformation, "結果出力")
End Sub
'パラメータ作成関数
Private Function パラメータ作成( _
ByRef p_adoコマンド As ADODB.Command _
, ByVal p_strパラメータ名 As String _
, ByVal p_dtpDBタイプ As ADODB.DataTypeEnum _
, ByVal p_intサイズ As Integer _
, ByVal p_pdrパラメータ種別 As ADODB.ParameterDirectionEnum _
, Optional ByVal p_obj初期値 _
) As ADODB.Parameter
Dim l_adoPrm As ADODB.Parameter
Set l_adoPrm = p_adoコマンド.CreateParameter(p_strパラメータ名, p_dtpDBタイプ, p_pdrパラメータ種別, p_intサイズ)
l_adoPrm.Value = IIf(IsMissing(p_obj初期値), vbNull, p_obj初期値)
Set パラメータ作成 = l_adoPrm
End Function
No.2
- 回答日時:
コンピューター [技術者向け] > プログラミング > Visual Basic
No.1648176 質問:SQL ServerのストアドでOUTPUTパラメータを2つ
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1648176
に、VB.NETでADO.NETを使ってストアドのOUTPUTパラメータを受け取る例があります。
おそらくADO.NETでできることは、面倒さえいとわなければADOでもできるかと思います。
No.1
- 回答日時:
昔の話ですが、SQLserverへODBCでコネクションを張ってMS-ACCESSからDB操作したことがあります。
そのときは不可能でした。ODBCはSQLserverからのリターンコードを受け取ることが出来ない仕様だったと記憶しています。今回のお話ではADO経由ということなので推測の域を出ませんが、ADOもOLEコントロールの一部なのでODBC経由のOLEコントロールなのかなと考えます。となると冒頭同様、「リターンは受け取れない仕様」ではないでしょうか。自信ありません。いい加減でごめんなさい。
アドバイスありがとうございます。
出来ないだろうという情報でもありがたいです。
でないとずっと調べつづけそうなので、、、
別の仕様も視野に入れてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# leetcode 155 minstack 1 2022/05/07 16:43
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- その他(プログラミング・Web制作) ColabでのPytorchのエラー 1 2022/11/19 20:51
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- Ruby vscode 文字化け 1 2022/05/21 19:17
- Access(アクセス) アクセス レポートを開いたときにパラメーターの自動入力がしたい 4 2022/11/30 11:21
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/02/05 09:55
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
SQL ServerのストアドでOUTPUTパラメータを2つ
Visual Basic(VBA)
-
VB6でのPL/SQLの実行について
Visual Basic(VBA)
-
VBScriptからストアドプロシージャのOUT変数の取得について
Microsoft ASP
-
-
4
DataGridViewでセルクリックイベントを発生させるには
Visual Basic(VBA)
-
5
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
-
6
ADOのCursorLocationプロパティ
Visual Basic(VBA)
-
7
.NETからストアドプロシージャを実行
Visual Basic(VBA)
-
8
プロシージャまたは関数の引数が多すぎますのエラー
Visual Basic(VBA)
-
9
VB6でLabelの最前面にText Boxを書く
Visual Basic(VBA)
-
10
実行時エラー 3265「要求された名前、または序数
Visual Basic(VBA)
-
11
ストアドプロシージャーのパラメーターに配列
SQL Server
-
12
VB6.0とスプレッドシート
Visual Basic(VBA)
-
13
Select ~ into ~ で作成した一時テーブルにプライマリキー設定
SQL Server
-
14
特定行の色を変えたい(FlexGrid)
Visual Basic(VBA)
-
15
配列を関数に渡す方法
Visual Basic(VBA)
-
16
GridViewにバインドせずにデータを表示する方法
Microsoft ASP
-
17
DataGridViewで指定したセルの値を取得
Visual Basic(VBA)
-
18
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
19
カーソル0件の時にエラーを発生させる
Oracle
-
20
テキストボックスのvalueとtextの違い
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBでストアドの戻りパラメータ...
-
REDOログファイルを移動したい...
-
ORA-01013のエラーについて経験...
-
CASE文のエラーについて
-
PL/SQLのコンパイルエラーにつ...
-
4GB = 4096MB ではない?
-
なぜ再起動すると空き領域が増...
-
「ORA-00907: 右カッコがありま...
-
PL/SQL PLS-00103エラーについて
-
oracleのサービスがずっと開始...
-
DOSプロンプトとコマンドプロン...
-
はじめまして!
-
新規表領域の作成について
-
SQLLOADER
-
SQL実行結果の出力を見やすくし...
-
フルインポートで警告が発生します
-
PL/SQLでログを確認したい。
-
batファイルでのSQL(oracle)...
-
順序のEXP/IMPについて
-
SQL*Plusで、コマンドの返答を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBでストアドの戻りパラメータ...
-
SQL ServerのストアドでOUTPUT...
-
Console.ReadLine()で、入力デ...
-
インラインフレームでpdfフ...
-
SQL*LoaderのDATA引数
-
REDOログファイルを移動したい...
-
Excel別ウィンドウで開く
-
MMAPのMAP_SHAREDについて
-
ORA-01013のエラーについて経験...
-
CASE文のエラーについて
-
DOSプロンプトとコマンドプロン...
-
PL/SQLのコンパイルエラーにつ...
-
PL/SQLでログを確認したい。
-
SQL*Plusで、コマンドの返答を...
-
「ORA-00907: 右カッコがありま...
-
4GB = 4096MB ではない?
-
PL/SQL PLS-00103エラーについて
-
Oracleの起動時に、マウントし...
-
ストアド・プロシージャをバッ...
-
SQL実行結果の出力を見やすくし...
おすすめ情報