读书人

_RecordsetPtr:Open()时老是弹出:0

发布时间: 2012-04-06 12:22:24 作者: rapoo

_RecordsetPtr::Open()时,老是弹出:0x7c80bef7 处未处理的异常: Microsoft C++ 异常: 内存位置 0x0012f7d
一下这段代码是连接数据库,根据特定条件读取相应的数据(COM组件注册是没有问题的,因为已经能够写进去了,就是不能读出来...)
小弟平常很少和数据库打交道,实在不知道这是啥原因...
麻烦各位老鸟们看看是不是代码哪里错了(生成的SQL语句是对的,我手动到数据库是能够查出相应的数据来的,就是用程序查找就出问题。虽然分是少了点,但还是希望大伙儿不腻赐教,小弟在此有礼了...)
CString strSQL;

_variant_t var;
_ConnectionPtr m_pConn;
_RecordsetPtr m_pRst;

HRESULT hr;


// 获取当前鼠标所指行的信息
int ItemNum = this->GetSelectionMark();
strID = this->GetItemText(ItemNum, 0);

strIP = this->GetItemText(ItemNum, 1);

strPort = this->GetItemText(ItemNum, 2);

hr = m_pConn.CreateInstance(__uuidof(Connection));
m_pRst.CreateInstance(__uuidof(Recordset));
m_pRst->CursorLocation = adUseClient;

m_pConn->ConnectionTimeout = DBTIMEOUT;
m_pConn->CommandTimeout = DBTIMEOUT;

strSQL.Format("select id,ip,port,remark,updatetime,starttime,sendnum,rcvnum,errnum,connnum,sendtra,rcvtra,clientdisc,monitorport,lowip,lownote,transferip,transfernote from serverport where id=%s",strID);

try{
m_pRst->Open(strSQL.GetBuffer(0),(IDispatch*)m_pConn,adOpenKeyset,adLockOptimistic,adCmdText);

[解决办法]
strSQL.Format("select id,ip,port,remark,updatetime,starttime,sendnum,rcvnum,errnum,connnum,sendtra,rcvtra,clientdisc,monitorport,lowip,lownote,transferip,transfernote from serverport where id=%s",strID);

//-->
strSQL.Format("select id,ip,port,remark,updatetime,starttime,sendnum,rcvnum,errnum,connnum,sendtra,rcvtra,clientdisc,monitorport,lowip,lownote,transferip,transfernote from serverport where id='%s'",strID);
SQL语句有错误。
[解决办法]
字符串要加 ''

读书人网 >VC/MFC

热点推荐