VC中怎么用ADO调用存储过程

whatapig whatapig 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我写了调用SP的代码,但是运行时候报"abnormal program termination"。ADO调用存储过程还要不要写些其他的东西,我看了网上有的例程,好象也就这个样子了。
我的数据库用的是SQL Server。
各位老大帮帮忙了。

源代码如下:
/////////////////////////////////////////////////////////////////////
_ConnectionPtr Conn = NULL;
_RecordsetPtr Rs = NULL;
_CommandPtr Cmd = NULL;

CoInitialize(NULL);

Conn.CreateInstance ( __uuidof(Connection));
Rs.CreateInstance (__uuidof(Recordset));
Cmd.CreateInstance (__uuidof(Command));

Conn->Open(L"db", L"sa", L"", adOpenUnspecified); //打开正常

//如下为_CommandPtr对象参数的赋值和调用
Cmd->ActiveConnection = Conn;
Cmd->CommandText = "SP_TEST";
//数据库中实际存在这个测试存储过程,select * from atable,不传递参数
Cmd->CommandType = adCmdStoredProc;
Cmd->Parameters->Refresh();
Rs = Cmd->Execute( NULL,NULL, adCmdUnknown ); //COM出错。

//注释掉的代码为直接的SQL语句提交,运行正确。
//Cmd->ActiveConnection=Conn;
//Cmd->CommandText = "select * from atable";
//Cmd->CommandType = adCmdText;
//Cmd->Parameters->Refresh();
//Rs = Cmd->Execute(NULL,NULL,adCmdUnknown);

.....
Rs->Close();
Conn->Close();

CoUninitialize();
////////////////////////////////////////////////////////
...全文
评论 9
收藏 已收藏
分享
返回顶部
whatapig
VC/MFC 16,550 成员 421,606 内容