土豪gold 2017-11-26 19:38 采纳率: 0%
浏览 1756

MFC执行SQL语句时失败(数据库连接成功)

这个问题卡了好几天了,ADO方式连接数据库,写了一个ADO类,连接数据库成功,但是在查询操作时失败,源码如下,sql语句应该没问题,别的程序如果在主窗口连接并执行是没问题的
具体就是执行完断点那行之后不进入WHILE,直接报错,如果能解决,必有重谢!!()红包重谢
图片说明

 void ADO::OnBnClickedButton1()
{
    {
        // TODO:  在此添加控件通知处理程序代码  
        m_list.DeleteAllItems();
        UpdateData(true);
        CString cmdEditID;
        CString cmdEditValue;
        CRect rect;
        // 获取编程语言列表视图控件的位置和大小   
        m_list.GetClientRect(&rect);
        // 为列表视图控件添加全行选中和栅格风格   
        m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
        m_list.InsertColumn(0, _T("编辑命令名称"), LVCFMT_LEFT, rect.Width() / 2);
        m_list.InsertColumn(1, _T("编辑命令值"), LVCFMT_LEFT, rect.Width() / 2);

        try
        {
            _variant_t RecordsAffected;
            m_pRecordset.CreateInstance(__uuidof(Recordset));
            CString search_sql;
            search_sql.Format(_T("SELECT * FROM cmdedit"));
            m_pRecordset = ((ADO*)(AfxGetMainWnd()))->m_pConnection->Execute(search_sql.AllocSysString(), NULL, adCmdText);
            while (!m_pRecordset->adoEOF)
            {
                CString cmdEditID;
                cmdEditID = m_pRecordset->GetCollect("ID").bstrVal;
                m_list.InsertItem(0, cmdEditID);
                cmdEditValue = m_pRecordset->GetCollect("idvalue").bstrVal;
                m_list.SetItemText(0, 1, cmdEditValue);
                m_pRecordset->MoveNext();
            }
            m_pRecordset->Close();
        }
        catch (_com_error e)
        {
            AfxMessageBox(_T("搜索失败!"));
            return;
        }
    }
}

展开全部

  • 写回答

2条回答 默认 最新

  • barry_di 2017-11-26 23:34
    关注

    m_pRecordset = ((ADO*)(AfxGetMainWnd()))->m_pConnection->Execute(search_sql.AllocSysString(), NULL, adCmdText);
    中search_sql.AllocSysString()使用完后没有释放,试一下_bstr_t(search_sql)

    评论
  • a139794 2017-11-27 04:27
    关注

    m_pRecordset = ((ADO*)(AfxGetMainWnd()))->m_pConnection->Execute(search_sql.AllocSysString(), NULL, adCmdText);
    中search_sql.AllocSysString()使用完后没有释放,试一下_bstr_t(search_sql)

    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部