用odbc写access数据库的最基本问题,我用以下方法操作多个CRecordSet的派生类向access数据库的多个表里写数据,在写入数据量不太大的时候,是正常的,可是数据量增大到1000行以上,总出现被admin用户锁定无法更新的错误。应该怎样解决。
写数据库:  
CRecordSet的派生类  m_RouteDB, m_RouteDB2, m_RouteDB3, m_RouteDB4;  
int m_nstep, callsign, comu_time, end_time;
//////////////////////////////////////////////////////////////
CRecordSet的派生类  m_RouteDB;  
............................  
1.写数据库:  
writeDataBase()
{
           try  
           {  
                       m_RouteDB.Open(CRecordset::dynaset,  "SELECT  *  FROM  tlk_RouteBrdcst");  
                       m_RouteDB.AddNew();  
                       m_RouteDB.m_t                  =  m_nstep;  
                       m_RouteDB.m_callsign           =  callsign;  
                       m_RouteDB.m_comutime           =  comu_time;  
                       m_RouteDB.m_endtime            =  end_time;  
                       m_RouteDB.Update();  
                       m_RouteDB.Close();  
                   }  
           catch(CDBException*  e)  
           {  
                       AfxMessageBox(e->m_strError);  
                       return;  
           }  }

解决方案 »

  1.   

    添加一句:
    m_RouteDB.CursorLocation = adUseClient;
      

  2.   

    CursorLocatio不是CRecordSet的成员,以上的写法无法通过编译。
      

  3.   

    CursorLocation 是你的ado连接的一个属性
    m_Conn.CursorLocation = adUseClient;
      

  4.   

    _ConnectionPtr ****;//找到你的这句
      

  5.   

    我这里用的是odbc不是ado, 在odbc的情况下应该怎样写?
      

  6.   

    不是 VBA 问题,不要提到这里关于此主题请参考:
        新手来看:Access的特点、概念。什么是纯 ACCESS 环境?《其他》
        http://access911.net/index.asp?u1=a&u2=79FAB51E12DC
      

  7.   

    http://www.vckbase.net/document/viewdoc/?id=568
      

  8.   

    我程序中没有用多线程,可是由于我用了多个CRecordSet的派生类,好像CRecordSet的派生类自动的启用多个线程。
      

  9.   

    是多个表又不是多个数据库为什么要用多个CRecordSet的派生类呢? 用一个表不就行了吗?
      

  10.   

    由于我的每个表的field数太多,我有用了5,6个这样的表,用一个recordset的时候就会出现field数太多的错误,这个问题能解决么?