有關(guān)于ADO調(diào)用存儲(chǔ)過(guò)程全講析
也許大家對(duì)于ADO調(diào)用存儲(chǔ)過(guò)程一直是一個(gè)困擾大家的問(wèn)題。其實(shí),關(guān)于ADO調(diào)用存儲(chǔ)過(guò)程的方法在很多書(shū)中都有講到,標(biāo)準(zhǔn)的做法無(wú)非是按照以下步驟進(jìn)行:那么就進(jìn)行仔細(xì)學(xué)習(xí)。
1、生成并初始化一個(gè)_CommandPtr對(duì)象;
2、生成調(diào)用存儲(chǔ)過(guò)程需要的參數(shù),這些參數(shù)都是_ParameterPtr對(duì)象;
3、按照順序?qū)⑹褂胈CommandPtr的Append方法為存儲(chǔ)過(guò)程提供參數(shù)(包括輸入?yún)?shù)
和輸出參數(shù));
4、為_(kāi)CommandPtr對(duì)象指定需要使用的ADO連接;
5、使用_CommandPtr的Execute方法調(diào)用存儲(chǔ)過(guò)程;
6、從結(jié)果中獲取返回參數(shù)的值(如果有的話(huà))。具體的過(guò)程在此我不詳細(xì)描述,我想看看本文附帶的代碼就應(yīng)該很明白了。
在這里我想就我使用ADO調(diào)用存儲(chǔ)過(guò)程時(shí)的一些體會(huì)說(shuō)明一下。
1、關(guān)于CreateParameter函數(shù)該函數(shù)的原型為:CreateParameter (Name, Type, Direction, Size, Value)其中Name是參數(shù)的名稱(chēng),可以指定也可以不指定;Type是一個(gè)DataTypeEnum值,指定參數(shù)的類(lèi)別,取值有adInteger(整型)、adChar(字符/字符串型)等;#t#
Direction是一個(gè)ParameterDirectionEnum值,其取值為adParamInput、adParamOutput、adParamOutput、adParamReturnValue、adParamUnknown;Size是一個(gè)Long類(lèi)型的值,指示該參數(shù)值以字節(jié)計(jì)算的最大長(zhǎng)度,例如對(duì)int型,該值可以取為sizeof(int)。
對(duì)Long型,該值可以取為sizeof(long),對(duì)字符串型,可以使用該字符串的長(zhǎng)度;Value是一個(gè)variant類(lèi)型的值,是該參數(shù)的取值。ADO調(diào)用存儲(chǔ)過(guò)程在這里需要注意的是,Type參數(shù)、Direction參數(shù)以及Size參數(shù)一定要和存儲(chǔ)過(guò)程定義時(shí)的參數(shù)相吻合。
例如,如果有下面一個(gè)ADO調(diào)用存儲(chǔ)過(guò)程:
- CREATE PROCEDURE SMS_Proc_Handle_All
- @UserID Integer,
- @SourAddr Varchar(15),
- @DestAddr varchar(5000),
- @AvValue Single output,
- @ReturnInfo varchar(100) output