请高手指点!部分代码如下
///COM库初始化
BOOL CMy030516_ADO_TESTApp::InitInstance()
{
AfxOleInit();
}///引入ADO类型库
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")///
BOOL CMy030516_ADO_TESTApp::InitInstance()
{
AfxOleInit();
m_pConnection.CreateInstance(__uuidof(Connection)); try
{
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=fp_test_ado.mdb","","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败");
return FALSE;
}
///
BOOL CMy030516_ADO_TESTDlg::OnInitDialog()
{
try
{
m_pRecordset->Open("SELECT * FROM admiFP", theApp.m_pConnection.GetInterfacePtr(),
adOpenDynamic, adLockOptimistic, adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}在vc下编译通过,(0)errors(0)warnings但是运行时出现windows提示框
Runtime Error!
program: G:\prog\030516_ADO_TEST\DEBUG\030516_ADO_TEST.EXE
abnormal program termination
///COM库初始化
BOOL CMy030516_ADO_TESTApp::InitInstance()
{
AfxOleInit();
}///引入ADO类型库
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")///
BOOL CMy030516_ADO_TESTApp::InitInstance()
{
AfxOleInit();
m_pConnection.CreateInstance(__uuidof(Connection)); try
{
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=fp_test_ado.mdb","","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败");
return FALSE;
}
///
BOOL CMy030516_ADO_TESTDlg::OnInitDialog()
{
try
{
m_pRecordset->Open("SELECT * FROM admiFP", theApp.m_pConnection.GetInterfacePtr(),
adOpenDynamic, adLockOptimistic, adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}在vc下编译通过,(0)errors(0)warnings但是运行时出现windows提示框
Runtime Error!
program: G:\prog\030516_ADO_TEST\DEBUG\030516_ADO_TEST.EXE
abnormal program termination
m_pRecordset->Open("SELECT * FROM admiFP", theApp.m_pConnection.GetInterfacePtr(),
adOpenDynamic, adLockOptimistic, adCmdText);
然后执行vc菜单中Debug-start debug-run to curser出现如下内容的提示框:
Unhandled exception in 030518_ADO_TEST.exe(MSVCRTD.DLL):0xE06D7363:
Micsoft C++ Exception
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=fp_test_ado.mdb","","",adModeUnknown);如果fp_test_ado.mdb是用Access97做的,那么没有问题。其他语句没有错误的话,运行是成功的
如果是用Access2000做的,就不行。尽管数据库文件fp_test_ado.mdb放在工作区文件夹下,还是出现Runtime error。解决的办法是注明绝对路径!
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=g:\\a\\fp_test_ado.mdb","","",adModeUnknown);
假设fp_test_ado.mdb文件存在g:]\