各位大侠,我修改了一个基于对话框的访问access的程序,用的是vc和ado,工程名是AdoRWAccess,在 CAdoRWAccessApp::InitInstance()函数中包含有如下代码,
AfxOleInit();
m_pConnection.CreateInstance(__uuidof(Connection)); // 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
// 因为它有时会经常出现一些想不到的错误。jingzhou xu
try                 
{
// 打开本地Access库Demo.mdb
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb","","",adModeUnknown);

}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败,确认数据库Demo.mdb是否在当前路径下!");
return FALSE;
}
程序可以正常运行,但是当我在一个响应按钮按键消息的函数中加入如下代码,却出错了
_variant_t vSum;
m_pRecordset=m_pConnection->Execute("SELECT * FROM DemoTable WHERE Name='"+(_bstr_t)m_select+"'",&vSum,adCmdText);
我设了断点,发现这个时候m_pConnection的值是0x0000000,好好的,m_pConnection的值怎么会变为0x00000啊,请大侠们指点,谢谢了
当我在这段代码前加入如下代码,又可以正常运行
m_pConnection.CreateInstance(__uuidof(Connection)); // 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
// 因为它有时会经常出现一些想不到的错误。jingzhou xu
try                 
{
// 打开本地Access库Demo.mdb
         m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb","","",adModeUnknown);

}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败,确认数据库Demo.mdb是否在当前路径下!"); }
请大侠们指点,万分感谢!!!!!!!