Publish date: 2003-01-16
Stored procedure. Use of property std_exec_sp (VB)
'SAMPLE OF PURPOSE OF 'STD_EXEC_CALL' property
Sub sample_8_3()
Dim cn As New ADODB.Connection
cn.Provider = "LCPI.IBProvider"
cn.Open "data source=main:e:\database\employee.gdb", "gamer", "vermut"
cn.BeginTrans
'table with customers
Dim customers As New ADODB.Recordset
'opening with support of bi-directional access (adOpenKeyset)
customers.Open "customer", cn, adOpenKeyset, adLockReadOnly
'command for execute STORED PROCEDURE MAIL_LABEL
Dim cmd As New ADODB.Command
cmd.ActiveConnection = cn
'std_exec_sp=true ----------------------------------------------------
'translate SQL 'exec SP(...)' to 'execute procedure SP(...)'
'reception of result through OUT-parameters
Debug.Print "STD_EXEC_SP=TRUE"
cmd.Properties("std_exec_sp") = True
cmd.CommandText = "exec MAIL_LABEL(:cust_no)"
'goto to first row
customers.MoveFirst
While (Not customers.EOF)
cmd("cust_no") = customers("cust_no")
cmd.Execute
'print result
Debug.Print "cust_no:" & customers("cust_no") & " - " & customers("customer")
Debug.Print "-----------------------"
'OUT-parameters
Debug.Print "line 1:" & cmd("line1")
Debug.Print "line 2:" & cmd("line2")
Debug.Print "line 3:" & cmd("line3")
Debug.Print "line 4:" & cmd("line4")
Debug.Print "line 5:" & cmd("line5")
Debug.Print "line 6:" & cmd("line6")
Debug.Print "--------------------------------------"
customers.MoveNext
Wend 'NOT customers.EOF
'std_exec_sp=false -----------------------------------------------------
'translate Sql 'exec SP(...)' to 'select * from SP(...)'
'reception of result through recordset
Debug.Print "STD_EXEC_SP=FALSE"
cmd.CommandText = "" 'reset ADODB.Command
cmd.Properties("std_exec_sp") = False
cmd.CommandText = "exec MAIL_LABEL(:cust_no)"
cmd.Parameters.Refresh
'goto to first row
customers.MoveFirst
'recordset for processing rows from SP
Dim mail_label_rs As ADODB.Recordset
While (Not customers.EOF)
cmd("cust_no") = customers("cust_no")
Set mail_label_rs = cmd.Execute
'print result
Debug.Print "cust_no:" & customers("cust_no") & " - " & customers("customer")
While (Not mail_label_rs.EOF)
Debug.Print "-----------------------"
'COLUMNS
Debug.Print "line 1:" & mail_label_rs("line1")
Debug.Print "line 2:" & mail_label_rs("line2")
Debug.Print "line 3:" & mail_label_rs("line3")
Debug.Print "line 4:" & mail_label_rs("line4")
Debug.Print "line 5:" & mail_label_rs("line5")
Debug.Print "line 6:" & mail_label_rs("line6")
mail_label_rs.MoveNext
Wend
Debug.Print "--------------------------------------"
mail_label_rs.Close
customers.MoveNext
Wend 'NOT customers.EOF
cn.CommitTrans
End Sub 'sample8_3
