我做了一个简单的查询数据库的程序,是mfc(exe)工程,功能很简单:输入框输入一个数字,点击确定,如果该数字在数据库中,则messagebox(ok),否则messagebox(fail);但是总是报错,是什么内存错误。数据库连接已经连上,也无编译错误。确定按钮的代码如下,请高手指教:
UpdateData(1);
CString sql;
rs.CreateInstance(__uuidof(Recordset));
sql.Format("select * from USER where U_NO='%s'",m_s);//m_s是对应的编辑框的关联变量,类型是cstring
rs->Open(sql.AllocSysString(),theApp.conn.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);//执行到此步报错
if(rs->RecordCount!=0)
{CDialog::OnOK();
//c dlg;
//dlg.DoModal();
MessageBox("fail!");
        return;}

解决方案 »

  1.   

    rs->Open((_bstr_t)sql.AllocSysString(),theApp.conn.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);是这样吗? 不过还是报错,报的错误还是“0x00402736指令引用的xxxx内存。该内存不能为read”
      

  2.   

    Open(sql.AllocSysString(),theApp.conn.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);//执行到此步报错
    先单独打开,再查询,里边其中有一个参数不符合规范导致的内存报错
      

  3.   

    那个SQL语句的最后加个分号试一下