VC中使用ADO调用存储过程实现方法
2008-11-12 19:26:39 来源:WEB开发网下面就是调用了
pRecordset = pCmd->Execute(NULL,NULL,adCmdStoredProc);
然后取那些return值阿,output值阿什么的
这里有一个区别,就是用这种办法
可以有三种办法来取这些返回值和output参数
VretVal = pCmd->Parameters->GetItem(_bstr_t("Return"))->Value;
VretVal = pCmd->Parameters->GetItem(short(0))->Value;
VretVal = retParam->Value;
都是一样的
6. 关于Refresh
关于这个函数,作用是
Command 对象去重新索取要操作的存储过程所有有关参数的信息,并且清空在refresh之前获取的参数信息。
所以一但调用它以后,就可以获取SP的那些信息,那些参数的信息,可以通过pCmd->Parameters->Item[_variant_t(_bstr_t("@pin1") )]->Value=_variant_t(3); 这样的方式来设置参数
如果要使用Parameter的办法的话,就不要用refresh了,事实上,如果先把这些参数的值设置好了,如 inParam2->Value = _variant_t(_T("DD1"));,一旦refresh后,这些参数就没有意义了。
7.关于pConn->CursorLocation =adUseClient;
设置这个东西,如果不设置游标为adUseClient,那么我在取return和output参数的时候,必须在我把记录集关闭以后才能取,就是说,必须先取记录集,然后关闭它,最后再取return和output参数,如果我在关闭记录集之前就取return和output的值,那么就不能取到正确的值,设成adUseClient就ok了,另外有一点就是,Execute 方法返回的游标继承该设置。Recordset 将自动从与之关联的连接中继承该设置。我把pConn设成adUseClient,那么最后,我的记录集也是adUseClient的了。
更多精彩
赞助商链接