ADO高手救命!!!!
您好!不好意思要浪费您这么长的时间来解读我的问题!
我知道如何用_CommandPtr来执行一个带有输入参数的存储过程,问题是用_CommandPtr的Execute方法执行得到的_RecordsetPtr的游标是仅向前游标,这种游标的问题是不能直执行MovePrivious()操作!而我恰恰就想执行MovePrivious(),这就是问题!所以我想得到一个游标类型是静态游标的_RecordsetPtr,这样就可以执行我想要的操作了。
我知道用_RecordsetPtr的open方法可以设置RecordsetPtr集合的游标类型,但是我不知道用_RecordsetPtr的open方法如何执行一个带有参数的存储过程。
具体说明见下:
我的程序有两种解决方案:
方案一:用_CommandPtr的Execute方法
_RecordsetPtr ExsitAccount
try
{
ExsitAccount = pCmd1->Execute(NULL, NULL, adCmdStoredProc);
}catch(_com_error &e)
{
dump_com_error(e);
return;
}
这种方法得到的ExsitAccount游标类型为“仅向前游标”,不能执行类似MoveFirst和MovePrivous()的操作。
方案二:用_RecordsetPtr的open方法
try
{
ExsitAccount -> Open("spExsitAccounts",(IDispatch*) (g_pConn),adOpenStatic ,adLockReadOnly ,adCmdStoredProc);
}catch(_com_error &e)
{
dump_com_error(e);
return;
}
这种方法得到的ExsitAccount 的游标是静态的,可是我不知道怎么向这个存储过程传递参数。
总之,就是说:用_RecordsetPtr的open方法也好,用_CommandPtr的Execute方法也行,如何执行一个带有输入参数的存储过程,并且得到一个游标类型为静态的_RecordsetPtr。
万分感谢!