vb呼叫儲存過程的方法
假設有一個名為doc_ProcName儲存過程,該儲存過程有一個輸入引數,一個輸出引數。
1) 直接傳遞引數呼叫儲存過程
直接傳遞引數方法主要透過以下幾個步驟來實現:
(1) 透過ADODB的Connection物件開啟與資料來源的連線;
(2) 透過ActiveConnection指定Command物件當前所屬的Connection物件;
(3) 透過CommandText屬性設定Command物件的源,即要呼叫的儲存過程;
(4) 透過CommandType屬性確定Command物件的源型別,如果源型別為儲存過程CommandType即為adCmdStoredProc;
(5) 透過Command物件的Parameters集合向所呼叫的儲存過程傳遞引數,其中物件Parameters(0)為執行儲存過程的返回值,返回值為0則執行儲存過程成功;
(6) 透過Eexecute方法執行在 CommandText 屬性中指定的儲存過程。
以儲存過程doc_ProcName為例,關鍵程式碼如下:
Dim strS As String '定義一變數
Dim adoconn As New ADODB.Connection 'Connection 物件代表了開啟與資料來源的連線。
Dim adocomm As New ADODB.Command 'Command 物件定義了將對資料來源執行的指定命令。
Dim ReturnValue As Integer '呼叫儲存過程的返回值
adoconn.ConnectionString = Adodc1.ConnectionString 'Adodc1為窗體中的ADO控制元件,並已成功連線資料庫
adoconn.Open
Set adocomm.ActiveConnection = adoconn '指示指定的 Command物件當前所屬的 Connection物件。
adocomm.CommandText = "doc_ProcName" '設定Command物件源。
adocomm.CommandType = adCmdStoredProc '通知提供者CommandText屬性有什麼,它可能包括Command物件的源型別。設定這個屬性最佳化了該命令的執行。
adocomm.Parameters(1) = "1"
adocomm.Parameters(2) = "OutputParameters" 'OutputParameters可以為任意的字串或數字
adocomm.Execute
ReturnValue = adocomm.Parameters(0) '儲存過程的返回值,返回0則成功執行。
strS = adocomm.Parameters(2) '把儲存過程的輸出引數的值賦給變數strS
2) 追加引數法呼叫儲存過程
追加引數透過CreateParameter方法,用來指定屬性建立新的Parameter物件。具體語法如下:
Set parameter = command.CreateParameter (Name, Type, Direction, Size, Value)
·Name 可選,字串,代表 Parameter 物件名稱。
·Type 可選,長整型值,指定 Parameter 物件資料型別。
·Direction 可選,長整型值,指定 Parameter 物件型別。
·Size 可選,長整型值,指定引數值最大長度(以字元或位元組數為單位)。
·Value 可選,變體型,指定 Parameter 物件值。
這種方法與上面一種方法的分別主要在於,追加引數的方法在向儲存過程傳遞引數時,這種方法首先透過CreateParameter方法為儲存過程建立引數,然後透過Append方法將建立的引數追加到Parameters集合中去。
仍然以儲存過程doc_ProcName的呼叫為例,關鍵程式碼如下:
Dim mRst As ADODB.Recordset 'Recordset 物件表示的是來自基本表或命令執行結果的記錄全集。
Dim prm As ADODB.Parameter 'Parameter 物件代表引數或與基於引數化查詢或儲存過程的Command 物件相關聯的引數。
adoconn.ConnectionString = Adodc1.ConnectionString
adoconn.Open
Set adocomm.ActiveConnection = adoconn
adocomm.CommandText = "doc_ProcName"
adocomm.CommandType = adCmdStoredProc
Set prm = adocomm.CreateParameter("parameter1", adTinyInt, adParamInput, , "1")
adocomm.Parameters.Append prm
Set prm = adocomm.CreateParameter("parameter2", adInteger, adParamOutput)
adocomm.Parameters.Append prm
Set mRst = adocomm.Execute
ReturnValue = adocomm.Parameters(0)
以上程式碼中未定義的變數以及未註釋的語句與前述相同。
結束語
在應用程式中呼叫伺服器端儲存過程,不僅能顯著提高整個應用的效能,而且能加強對資料庫資料的保護。VB為客戶端應用程式呼叫儲存過程提供了一組方便而有效的方法。
1) 直接傳遞引數呼叫儲存過程
直接傳遞引數方法主要透過以下幾個步驟來實現:
(1) 透過ADODB的Connection物件開啟與資料來源的連線;
(2) 透過ActiveConnection指定Command物件當前所屬的Connection物件;
(3) 透過CommandText屬性設定Command物件的源,即要呼叫的儲存過程;
(4) 透過CommandType屬性確定Command物件的源型別,如果源型別為儲存過程CommandType即為adCmdStoredProc;
(5) 透過Command物件的Parameters集合向所呼叫的儲存過程傳遞引數,其中物件Parameters(0)為執行儲存過程的返回值,返回值為0則執行儲存過程成功;
(6) 透過Eexecute方法執行在 CommandText 屬性中指定的儲存過程。
以儲存過程doc_ProcName為例,關鍵程式碼如下:
Dim strS As String '定義一變數
Dim adoconn As New ADODB.Connection 'Connection 物件代表了開啟與資料來源的連線。
Dim adocomm As New ADODB.Command 'Command 物件定義了將對資料來源執行的指定命令。
Dim ReturnValue As Integer '呼叫儲存過程的返回值
adoconn.ConnectionString = Adodc1.ConnectionString 'Adodc1為窗體中的ADO控制元件,並已成功連線資料庫
adoconn.Open
Set adocomm.ActiveConnection = adoconn '指示指定的 Command物件當前所屬的 Connection物件。
adocomm.CommandText = "doc_ProcName" '設定Command物件源。
adocomm.CommandType = adCmdStoredProc '通知提供者CommandText屬性有什麼,它可能包括Command物件的源型別。設定這個屬性最佳化了該命令的執行。
adocomm.Parameters(1) = "1"
adocomm.Parameters(2) = "OutputParameters" 'OutputParameters可以為任意的字串或數字
adocomm.Execute
ReturnValue = adocomm.Parameters(0) '儲存過程的返回值,返回0則成功執行。
strS = adocomm.Parameters(2) '把儲存過程的輸出引數的值賦給變數strS
2) 追加引數法呼叫儲存過程
追加引數透過CreateParameter方法,用來指定屬性建立新的Parameter物件。具體語法如下:
Set parameter = command.CreateParameter (Name, Type, Direction, Size, Value)
·Name 可選,字串,代表 Parameter 物件名稱。
·Type 可選,長整型值,指定 Parameter 物件資料型別。
·Direction 可選,長整型值,指定 Parameter 物件型別。
·Size 可選,長整型值,指定引數值最大長度(以字元或位元組數為單位)。
·Value 可選,變體型,指定 Parameter 物件值。
這種方法與上面一種方法的分別主要在於,追加引數的方法在向儲存過程傳遞引數時,這種方法首先透過CreateParameter方法為儲存過程建立引數,然後透過Append方法將建立的引數追加到Parameters集合中去。
仍然以儲存過程doc_ProcName的呼叫為例,關鍵程式碼如下:
Dim mRst As ADODB.Recordset 'Recordset 物件表示的是來自基本表或命令執行結果的記錄全集。
Dim prm As ADODB.Parameter 'Parameter 物件代表引數或與基於引數化查詢或儲存過程的Command 物件相關聯的引數。
adoconn.ConnectionString = Adodc1.ConnectionString
adoconn.Open
Set adocomm.ActiveConnection = adoconn
adocomm.CommandText = "doc_ProcName"
adocomm.CommandType = adCmdStoredProc
Set prm = adocomm.CreateParameter("parameter1", adTinyInt, adParamInput, , "1")
adocomm.Parameters.Append prm
Set prm = adocomm.CreateParameter("parameter2", adInteger, adParamOutput)
adocomm.Parameters.Append prm
Set mRst = adocomm.Execute
ReturnValue = adocomm.Parameters(0)
以上程式碼中未定義的變數以及未註釋的語句與前述相同。
結束語
在應用程式中呼叫伺服器端儲存過程,不僅能顯著提高整個應用的效能,而且能加強對資料庫資料的保護。VB為客戶端應用程式呼叫儲存過程提供了一組方便而有效的方法。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11411056/viewspace-733997/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 呼叫儲存過程儲存過程
- mssql 儲存過程呼叫另一個儲存過程中的結果的方法分享SQL儲存過程
- Winform呼叫儲存過程ORM儲存過程
- perl呼叫儲存過程儲存過程
- jdbc呼叫儲存過程JDBC儲存過程
- 在儲存過程A中呼叫儲存過程B的結果儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- Sqlsugar呼叫Oracle的儲存過程SqlSugarOracle儲存過程
- 儲存過程呼叫其他模式的儲存過程需要注意的地方儲存過程模式
- mysql如何呼叫儲存過程MySql儲存過程
- linux呼叫儲存過程Linux儲存過程
- PB中呼叫儲存過程儲存過程
- java 呼叫oracle 儲存過程JavaOracle儲存過程
- php呼叫mssql儲存過程PHPSQL儲存過程
- java中呼叫儲存過程Java儲存過程
- 完整的分頁儲存過程以及c#呼叫方法儲存過程C#
- php呼叫mysql儲存過程和函式的方法(轉)PHPMySql儲存過程函式
- jsp中呼叫儲存過程JS儲存過程
- Spring mybatis 呼叫儲存過程SpringMyBatis儲存過程
- 用PHP呼叫MySQL儲存過程PHPMySql儲存過程
- c / c + + 呼叫mysql儲存過程MySql儲存過程
- C#呼叫 oracle儲存過程C#Oracle儲存過程
- C#呼叫Oracle儲存過程C#Oracle儲存過程
- 動態呼叫儲存過程 sample:儲存過程
- java中呼叫ORACLE儲存過程JavaOracle儲存過程
- 用java呼叫oracle儲存過程JavaOracle儲存過程
- asp.net(VB.net)中儲存過程的使用方法 (轉)ASP.NET儲存過程
- mysql多次呼叫儲存過程的問題MySql儲存過程
- Java呼叫Oracle儲存過程的問題JavaOracle儲存過程
- job呼叫儲存過程的注意事項儲存過程
- oracle父儲存過程呼叫子儲存過程procedure與輸出引數Oracle儲存過程
- MySQL儲存過程語句及呼叫MySql儲存過程
- mysql 儲存過程,以及mybatis如何呼叫MySql儲存過程MyBatis
- JDBC 呼叫儲存過程程式碼示例JDBC儲存過程
- PHP呼叫MYSQL儲存過程例項PHPMySql儲存過程
- mysql-定時呼叫儲存過程MySql儲存過程
- c#呼叫儲存過程小記C#儲存過程
- mybatis呼叫檢視和儲存過程MyBatis儲存過程