首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

可以连接数据库,但不能操作,咋办?该如何解决

2012-08-29 
可以连接数据库,但不能操作,咋办?C/C++ codeCoInitialize(NULL)_ConnectionPtr pConn(__uuidof(Connectio

可以连接数据库,但不能操作,咋办?

C/C++ code
CoInitialize(NULL);    _ConnectionPtr pConn(__uuidof(Connection));    _RecordsetPtr pRst(__uuidof(Recordset));    _CommandPtr pCmd(__uuidof(Command));         pConn->Open("Data Source=student;UID=;PWD=","","",adModeUnknown);         MessageBox("");    pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));    pCmd->CommandText="select * from student";    pRst=pCmd->Execute(NULL,NULL,adCmdText);//这一句,一直提示异常,无法解决,然后退出了    while(!pRst->rsEOF)    {        ((CListBox*)GetDlgItem(IDC_LIST1))->AddString(            (_bstr_t)pRst->GetCollect("au_lname"));//把内容读取到ListBox控件中        pRst->MoveNext();    }        pRst->Close();    pConn->Close();    pCmd.Release();    pRst.Release();    pConn.Release();    CoUninitialize();


[解决办法]
你改成pRst=pCmd->Execute("select * from student",NULL,adCmdText);试下
[解决办法]
或者这样
C/C++ code
_CommandPtr m_pCommand; pCmd.CreateInstance("ADODB.Command"); _variant_t vNULL; vNULL.vt = VT_ERROR; vNULL.scode = DISP_E_PARAMNOTFOUND;///定义为无参数 pCmd->ActiveConnection = pConn;///非常关键的一句,将建立的连接赋值给它 pCmd->CommandText = "select * from student";///命令字串 m_pRecordset = m_pCommand->Execute(&vNULL,&vNULL,adCmdText);
[解决办法]
你能确定一定连接数据库成功了吗,你单步执行看看pConn这个值是否有效,包括pRst,pCmd
[解决办法]
用try ...catch(_com_error)捕获异常,看看提示是什么。数据库操作,应该添加异常处理。


这里有别人封装好的,调用ado的方法,可以考虑一下
http://www.codeproject.com/Articles/1075/A-set-of-ADO-classes-version-2-20

热点排行