注册 登录
编程论坛 C++教室

C++ SQL数据读取

E_ver 发布于 2012-12-02 23:06, 519 次点击
//函数原型:
_RecordsetPtr&  CLinkSQL::GetRecordSet(_bstr_t bstrSQL)
{    try
{    // 连接数据库,如果Connection对象为空,则重新连接数据库
    if(m_pConnection==NULL)
        OnInit();
    // 创建记录集对象

    m_pRecordset.CreateInstance(__uuidof(Recordset));
    //m_pRecordset->CursorLocation = adUseClient;
    // 取得表中的记录
    m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

}// 捕捉异常
catch(_com_error e)
{    // 显示错误信息
    MessageBox(NULL ,_T("读取异常!"),_T("读取"),0);
}    // 返回记录集
return m_pRecordset;
}

//调用:

    LPSTR strWord="";
    _bstr_t vSQL="SELECT * FROM word source ";
    m_pRecordset=linksql.GetRecordSet(vSQL);

    while(!m_pRecordset->adoEOF)
    {   
        _variant_t vWord=m_pRecordset->GetCollect("Word");
        if(vWord.vt!=VT_NULL)
            strWord=(LPSTR)_bstr_t(vWord);
    }   
    return strWord;
}

//错误:
.exe 中的 0x7c812afb 处有未经处理的异常: Microsoft C++ 异常: 内存位置 0x0012fa0c 处的 _com_error。

调试没错、执行会异常无法正确读取。。。
求大神指教。。。



2 回复
#2
yuccn2012-12-03 08:33
调试看看那个地方抛的异常的,看看是否用法正确,如果是第三方库抛的一异常,一般都是你用法不对的
#3
E_ver2012-12-03 09:10
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

其实真正的问题就是这句执行失败了。。。也就是获得结果集失败。。。。。。。求解决啊!!!
1