ADO参数的使用方法
这篇文章主要介绍“ADO参数的使用方法”,在日常操作中,相信很多人在ADO参数的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ADO参数的使用方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
创新互联主要从事成都网站制作、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务河南,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
其实对于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参数的使用方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
文章标题:ADO参数的使用方法
文章源于:http://myzitong.com/article/iipgis.html