我使用CDao写数据库程序,在本机上运行或在装有VS6.0的 机子上运行没有问题,但是到了其他机子上或没有装Vs6.0的机子上就不能运行。数据库初始化,就出现无法初始化Jet数据库引擎,或者RunTime Error,这到底是什么原因,我后来装了Vs.net的Jet引擎,也不能解决问题。这是一个SDI的应用程序。
BOOL DB::Initial(LPCTSTR DBFileName)
{
pDatabase =new CDaoDatabase;
try
{
pDatabase->Open(DBFileName);
pRecordset=new CDaoRecordset(pDatabase); }
catch(CDaoException *e)
{
e->ReportError();
delete pDatabase;
pDatabase=NULL;
pRecordset=NULL;
e->Delete();
return FALSE;

}

return (TRUE);
}

解决方案 »

  1.   

    肯定少了一些dll文件,把那些文件一起打包。
    另外
    不是CDao吧,是CDaoDatabase吧如果是InstallShield打包就可能好办些
      

  2.   

    谢谢,但是我想知道具体是什么文件缺少。我用Dependency这个工具看过,缺少的文件在其他系统下都有,就是不能运行。
      

  3.   

    //如果是Access2000,需要运行,RegSvr32 Dao360.dll
    AFX_MANAGE_STATE(AfxGetModuleState());        //如果使用Access97,可以去掉此两行
    AfxGetModuleState()->m_dwVersion=0x0601; //访问Access2000   
    AfxDaoInit(); 
    pDatabase =new CDaoDatabase;
    try
    {
      pDatabase->Open(DBFileName,FALSE,TRUE);
      pRecordset=new CDaoRecordset(pDatabase);
    }
    catch(CDaoException *e)
    {
    e->ReportError(); 
             delete pDatabase;
    pDatabase=NULL;
    pRecordset=NULL;
    e->Delete();
    return FALSE;
    }
    问题已经解决,谢谢