OleInitialize(NULL);
_RecordsetPtr rs;
HRESULT hr;
try{
strSQL="update MessageSend set SendFlag='3' where ID="+id;
pConnSend->Execute((_bstr_t)strSQL.AllocSysString(),NULL,adCmdText);
}catch(_com_error e)
{
_bstr_t bstrSource(e.Source());
_bstr_t bs = _bstr_t(" Error: ") + _bstr_t(e.Error()) + _bstr_t(" Msg: ")
+ _bstr_t(e.ErrorMessage()) + _bstr_t(" Description: ")
+ _bstr_t(e.Description());
MessageBox(NULL,bs, bstrSource,MB_OK);
}1.以上代码片断编译可以通过
2.我确定已经连接数据库(因为此代码之前,用同样的方法执行过一句sql语句了,并成功)
3.SQL语句我在调试的时候拿出来到SQL Server去执行,没有问题
4.以上try{}catch{}语句形同虚设,根本捕捉不了异常错误,为什么?
5.当执行到Execute那句的时候,竟然弹出一个系统错误:××.exe遇到问题需要关闭...
这样的提示.请问为什么会出错呢?到底哪里错了
_RecordsetPtr rs;
HRESULT hr;
try{
strSQL="update MessageSend set SendFlag='3' where ID="+id;
pConnSend->Execute((_bstr_t)strSQL.AllocSysString(),NULL,adCmdText);
}catch(_com_error e)
{
_bstr_t bstrSource(e.Source());
_bstr_t bs = _bstr_t(" Error: ") + _bstr_t(e.Error()) + _bstr_t(" Msg: ")
+ _bstr_t(e.ErrorMessage()) + _bstr_t(" Description: ")
+ _bstr_t(e.Description());
MessageBox(NULL,bs, bstrSource,MB_OK);
}1.以上代码片断编译可以通过
2.我确定已经连接数据库(因为此代码之前,用同样的方法执行过一句sql语句了,并成功)
3.SQL语句我在调试的时候拿出来到SQL Server去执行,没有问题
4.以上try{}catch{}语句形同虚设,根本捕捉不了异常错误,为什么?
5.当执行到Execute那句的时候,竟然弹出一个系统错误:××.exe遇到问题需要关闭...
这样的提示.请问为什么会出错呢?到底哪里错了
解决方案 »
- 使用List Control的一点点问题
- 如何用程序生成chm文件
- 求教 CLR下FORM中,全局變量的錯誤
- 怎么获取HTTP服务器返回的应答消息,比如: HTTP/1.1 200 OK Server: NCSA/1.4.2 Content-type: text/html Content-length: 37756 ,最好能给出具
- WM_PAINT下的响应出了什么问题,请高手指点(显示无法获得资源)
- 急!弱!求教怎样把生成的DLL注册到组件服务???
- ADO中记录集绑定问题,help!!!
- 问:如何在程序启动时就打开一个文件?(这个文件是已在程序中指定的)
- 怎么样控制视图的绘制
- 请熟悉windows服务开发的进来,错误1053 服务无法及时响应,是什么原因?100分求助!
- ADO数据库连接问题。。。
- ADO打开sql server数据库
其次就是实例化记录集对象。
ADO数据集打开数据表的纪录
try
{
rs->Open("select*from DemoTable",theApp.ADOConn.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdUnknown);
}
catch(_com_error &e)
{
CString str;
str=(char *)e.Description();
MessaeBox();
}
pConnSend->Execute((_bstr_t)strSQL.AllocSysString(),NULL,adCmdText);
但是一旦执行这一句,就出错了,为什么呢?
pConnSend->Execute((_bstr_t)strSQL,&record,adCmdText);
strSQL="update MessageSend set SendFlag='3' where ID="+id;
改为
strSQL.Format("update MessageSend set SendFlag='3' where ID=%d",id);
2.换成
pRs->Open(_bstr_t(strSQL),vtMissing,adOpenDynamic,adLockBatchOptimistic,adCmdText);
试试看,不用Execute能不能成功
3.
_variant_t RecordsAffected;
pConn->Execute(_bstr_t(tempsql),&RecordsAffected,adCmdText);