我在access里面装了很多空表,希望能用上,但是现在不能识别了,怎么办,odbc可以,但是据说dao比odbc快,好,thank!

解决方案 »

  1.   

    可能有是这问题了,如果你用的是ACCESS2000跟VC6.0,你要在
    应用程序的AAP类中加入:
    AfxGetModuleState()->m_dwVersion=0x0601;
      

  2.   

    谢谢你这么热心,问题是这样的:我在建工程时没有用数据库支持。后来认识到数据库的好处后,就在stdafx.h里面加了:#ifndef _AFX_NO_DB_SUPPORT
    #include <afxdb.h>         
    #endif#ifndef _AFX_NO_DAO_SUPPORT
    #include <afxdao.h>          
    #endif
    因为我只发现有这个差异。然后就准备加CDaoRecordSet的一个类,就出现无法识别数据库的提示。我一直在线等你的回答。谢谢!
      

  3.   

    我认为用DAO前面根本没必要选择对数据库的支持。
    你只要在stdafx.h中加#include <afxdao.h>就可以实现对数据库的支持。
    然后定义两个指针。CDaoDatabase* m_pDaoDatabase;
    CDaoRecordset* m_pRecordset;
    然后在一个对话类的初始化函数中加入如下实现对数据库的连接:
    m_pDatabase=new CDaoDatabase;
    try{
    m_pDatabase->Open("education.mdb");
    m_pRecordset=new CDaoRecordset(m_pDatabase);
    }
    catch(CDaoException* e)
    {
    e->ReportError();
    delete m_pDatabase;
    m_pDatabase=NULL;
    e->Delete();
    return FALSE;
    }
    当然这不一定就要在初始化中也可以在需要时加载。
    现在你可以在程序中用m_pRecordset对数据库中的记录集进行操作。
    如果还是不行我可以给你类似的代码看看。
    我想然后加CDaoRecordSet的一个类可能不行吧。你就用的方法吧。
      

  4.   

    这个我试了,但是,由于代码还没有写下去,所以还出错,我说的问题是,用class wizard新建cdaorecordset类的子类时它要求建立dao数据库的连接,这时就出现问题:“unrecognized database format”(大概是这个意思)。不好意思,刚才出去有事,我的msn:[email protected]。谢谢指导。有代码最好,我很想参考一下。谢谢。(msn我在基本都开着)
      

  5.   

    我看了,我的access根本没有转换版本的功能:就是在工具里面版本转换里面什么都没有。谢谢你的答复,可能是我的access没装好!我的问题真是折磨人!
      

  6.   

    出错跟代码还没有写下去好像没关系,用class wizard新建cdaorecordset类的子类时它要求建立dao数据库的连接我没试过,我没有用class wizard新建cdaorecordset类的子类来对数据库操作。
    一个很简单的例子我发给你了。你不用转换数据库用我前面说到的方法就是了; /