温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ADO参数的使用方法

发布时间:2021-06-17 17:39:50 来源:亿速云 阅读:189 作者:chen 栏目:编程语言

这篇文章主要介绍“ADO参数的使用方法”,在日常操作中,相信很多人在ADO参数的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”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给这一现象的回复是

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参数的使用方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

ado
AI