需要注意ADO存儲過程的相關事宜
如果要最正常的使用在ADO存儲過程,一直是一個困擾大家的問題。其實,關于ADO調用存儲過程的方法在很多書中都有講到,標準的做法無非是按照以下步驟進行,我不知道這是為什么,但是相信我,事情就是這樣。
1、生成并初始化一個_CommandPtr對象;
2、生成調用存儲過程需要的參數(shù),這些參數(shù)都是_ParameterPtr對象;
3、按照順序將使用_CommandPtr的Append方法為存儲過程提供參數(shù)(包括輸入?yún)?shù)
和輸出參數(shù));
4、為_CommandPtr對象指定需要使用的ADO存儲過程;
5、使用_CommandPtr的Execute方法調用存儲過程;
6、從結果中獲取返回參數(shù)的值(如果有的話)。
具體的過程在此我不詳細描述,我想看看本文附帶的代碼就應該很明白了。在這里我想就我使用ADO調用存儲過程時的一些體會說明一下。
1、關于CreateParameter函數(shù)
該函數(shù)的原型為:CreateParameter(Name,Type,Direction,Size,Value)其中Name是參數(shù)的名稱,可以指定也可以不指定;Type是一個DataTypeEnum值,ADO存儲過程指定參數(shù)的類別,取值有adInteger(整型)、adChar(字符/字符串型)等;#t#
ADO存儲過程是一個ParameterDirectionEnum值,其取值為adParamInput、adParamOutput、adParamOutput、adParamReturnValue、adParamUnknown;Size是一個Long類型的值,指示該參數(shù)值以字節(jié)計算的***長度,例如對int型,該值可以取為sizeof(int),對Long型,該值可以取為sizeof(long),對字符串型,可以使用該字符串的長度;
Value是一個variant類型的值,是該參數(shù)的取值。
在這里需要注意的是,Type參數(shù)、Direction參數(shù)以及Size參數(shù)一定要和ADO存儲過程定義時的參數(shù)相吻合,
例如,如果有下面一個存儲過程:
- @UserID Integer,
- @SourAddr Varchar(15),
- @DestAddr varchar(5000),
- @AvValue Single output,
- @ReturnInfo varchar(100) output