有效总结ADO参数的使用说明

其实对于ADO参数这个东西我有许多想说的,如果不设置游标为adUseClient,那么我在取return和output参数的时候,必须在我把记录集关闭以后才能取,就是说,必须先取记录集,然后关闭它,***再取return和output参数。

站在用户的角度思考问题,与客户深入沟通,找到澄海网站设计与澄海网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、网站设计、企业官网、英文网站、手机端网站、网站推广、域名注册虚拟主机、企业邮箱。业务覆盖澄海地区。

设成adUseClient就ok了,另外有ADO参数一点就是,Execute 方法返回的游标继承该设置。Recordset 将自动从与之关联的连接中继承该设置。我把pConn设成adUADO参数seClient,那么***,我的记录集也是adUseClient的了。

在可以执行这个存储过程了m_pRecordset = m_pCommand->Execute(0,0,adCmdStoredProc);这个时候,如果接下来用variant_t ret_val = m_pCommand->Parameters->GetItem((long)0)->Value;那么将得不到值而如果像下面这样调用的话就可以得到返回值了m_pRecordset->Close();variant_t outpuADO参数t_para = m_pCommand->Parameters->GetItem((long)0)->Value;
MS ADO.net给这一现象的回复是#t#

You can think of a storADO参数ed procedure as a function in your code. The function doesn’t return a value until it has executed all of its code. If the stored procedure returns results and you haven’t finished processing these results, the stored procedure hasn’t really finished executing. Until you’ve closed the DataReader, the return and output parameters of your Command won’t contain the values returned by your stored procedure.

也就是说Execute()函数应该看成是直到m_pRecordset关掉以后才会正确返回.关于输出参数的处理也和这一样,因为返回值本身就是当成输出参数来处理的.通过这种方法,我们可以得到一个存储过程的返回值和结果集,而且对于所有的存储过程都可以一样使用,不必为某个特定ADO参数的存储过程去写代码,具有一定的通用性.

所以一但调用它以后,就可以获取SP的那些信息,那些参数的信息,可以通过pCmd->Parameters->Item[_variant_t(_bstr_t(\"@pin1\") )]->Value=_variant_t(3);   这样的方式来设置参数

如果要使用Parameter的办法的话,就不要用refresh了,事实上,如ADO参数果先把这些参数的值设置好了,如 inParam2->Value = _variant_t(_T(\"DD1\"));,一旦refresh后,这些参数就没有意义了。

Command.Prepare方法能够提高数据源中重复的参数化命令的性能。Prepare指示数据源为多个调用优化特定的命令。为了更高效率地使用Prepare,你必须十分清楚数据源怎样回应Prepare调用。对于类似SQL Server 2000的数据源,命令是隐式优化的,ADO参数对Prepare的调用是没有必要的,但是对于另一些数据源,例如SQL Server 7.0,Prepare效率更高。

网页标题:有效总结ADO参数的使用说明
标题URL:http://www.shufengxianlan.com/qtweb/news32/279082.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联