在ADO調(diào)用存儲過程中進行有效的使用
你可以在安裝ADO調(diào)用存儲過程中。但它的功能沒有Oracle或Microsoft那么多。而且,當然,Data Direct有一個本地的data provider for Oracle??梢园惭b在Visual Studio中。但它的功能沒有Oracle或Microsoft那么多。
在ADO調(diào)用存儲過程一直是一個困擾大家的問題。其實,關于ADO調(diào)用存儲過程的方法在很多書中都有講到,標準的做法無非是按照以下步驟進行:
1、生成并初始化一個_CommandPtr對象;
2、生成調(diào)用存儲過程需要的參數(shù),這些參數(shù)都是_ParameterPtr對象;
3、按照順序?qū)⑹褂胈CommandPtr的Append方法為存儲過程提供參數(shù)(包括輸入?yún)?shù)和輸出參數(shù));
4、為_CommandPtr對象指定需要使用的ADO連接;
5、使用_CommandPtr的Execute方法調(diào)用存儲過程;
6、從結(jié)果中獲取返回參數(shù)的值(如果有的話)。 具體的過程在此我不詳細描述,我想看看本文附帶的代碼就應該很明白了。在這里我想就我使用ADO調(diào)用存儲過程時的一些體會說明一下。#t#
1、關于CreateParameter函數(shù)
該函數(shù)的原型為:CreateParameter (Name, Type, Direction, Size, Value)其中Name是參數(shù)的名稱,可以指定也可以不指定;
Type是一個DataTypeEnum值,指定參數(shù)的類別,取值有adInteger(整型)、adChar(字符/字符串型)等;ADO調(diào)用存儲過程Direction是一個ParameterDirectionEnum值,其取值為adParamInput、adParamInputOutput、adParamOutput、adParamReturnValue、adParamUnknown;Size是一個Long類型的值,指示該參數(shù)值以字節(jié)計算的***長度,例如對int型,該值可以取為sizeof(int),
對Long型,該值可以取為sizeof(long),ADO調(diào)用存儲過程對字符串型,可以使用該字符串的長度;Value是一個variant類型的值,是該參數(shù)的取值。在這里需要注意的是,Type參數(shù)、Direction參數(shù)以及Size參數(shù)一定要和存儲過程定義時的參數(shù)相吻合,
例如,如果有下面一個存儲過程:
- CREATE PROCEDURE SMS_Proc_Handle_All
- (@UserID Integer,
- @SourAddr Varchar(15),
- @DestAddr varchar(5000),
- @AvValue Single output,
- @ReturnInfo varchar(100) output