项目进行到给应用层加入 DB Log部分,调试之前其他人留下的SP时发现BUG多多,最明显的一个问题是没有正确的区分由SP执行的返回值和传递给SP的参数中的输出值。
SP的返回值:是指代有SP执行结束时直接返回的值。在SP中,由Return语句后面的变量决定具体的返回数值
SP的输出参数 : 是传递给SP的参数中的一种,可以在SP中被修改,并将数值返回给SP的执行调用者
使用ADO+VC执行存储过程时,需要使用Command对象创建所有的参数对象并Append给Command对象,这一点很简单没啥说的。关键在于传递的顺序:为了能正确的传递输入输出参数,并得到SP的返回值,应该按照如下的顺序Append参数:
首先Append返回值,随后是输入参数,最后是输出参数。
在SP调用结束后,如果得到的_RecordsetPtr不为NULL(为NULL说明SP执行失败,原因很多,最常见的大概就是约束条件不满足),则可以使用执行Sp的Command对象的Parameters属性中的GetItem()以及GetValue()方法来得到返回值,注意要使用在SP执行前创建参数时相同的参数名称,否则 ADO 会异常给你看。
posted on 2011-03-22 18:31
无毁湖光 阅读(164)
评论(0) 编辑 收藏 引用