①ストアド内のSELECT結果を取得する場合
Private Sub ExecSP()
Dim cmd As New ADODB.Command
Dim conn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim rtn As Integer
m_cn = New ADODB.Connection
conn.ConnectionString = "DSN=TEST_ODBC;Uid=USER1;Pwd=userpass1;Database=TEST_DB"
conn.Open
Set cmd = New ADODB.Command
Set cmd.ActiveConnection = conn
With cmd
.CommandText = "usp_sp1"
.CommandType = adCmdStoredProc
.Parameters.Refresh
.Parameters(1).Value = 100 ' ストアド引数1つ目
.Parameters(2).Value = 200 ' ストアド引数2つ目
End With
' ストアドプロシージャ内で最後に実行されたSQLの結果を取得
Set rst = cmd.Execute
' ストアドプロシージャのReturn値を取得
rtn = cmd.Parameters(0).Value
rst.Close
Set rst = Nothing
Set cmd = Nothing
End Sub
②ストアド内のSELECT結果を取得しない場合
Private Sub ExecSP()
Dim cmd As New ADODB.Command
Dim conn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim rtn As Integer
m_cn = New ADODB.Connection
conn.ConnectionString = "DSN=TEST_ODBC;Uid=USER1;Pwd=userpass1;Database=TEST_DB"
conn.Open
Set cmd = New ADODB.Command
Set cmd.ActiveConnection = conn
With cmd
.CommandText = "usp_sp1"
.CommandType = adCmdStoredProc
.Parameters.Refresh
.Parameters(1).Value = 100 ' ストアド引数1つ目
.Parameters(2).Value = 200 ' ストアド引数2つ目
.Execute
End With
' ストアドプロシージャのReturn値を取得
rtn = cmd.Parameters(0).Value
rst.Close
Set rst = Nothing
Set cmd = Nothing
End Sub
0 件のコメント:
コメントを投稿