我使用的是DAO操作AccessDB,我现在生成一个表
但是当生成的表的字段个数超过21个的时候就会报错
“超出系统资源”,大侠们怎么回事阿?????
用Create生成表,
用CreateField("编号", dbLong, 4, dbUpdatableField);生成字段

解决方案 »

  1.   

    这是源代码!!
    我要将这个问题UP到底!!
    try
    {
       m_pdbDatabase->DeleteTableDef("专家系统");
    }
    catch(CDaoException *e)
    {
      e->Delete();
    }
    try
    {
      CDaoTableDef tabledef(m_pdbDatabase);
      CDaoFieldInfo fieldinfo;
      tabledef.Create("专家系统");//专家系统
      tabledef.CreateField("编号", dbLong, 4, dbUpdatableField);
      tabledef.CreateField("任务性质编号", dbLong, 4, dbUpdatableField);
      tabledef.CreateField("任务类别编号", dbLong, 4, dbUpdatableField);
      tabledef.CreateField("任务级别编号", dbLong, 4, dbUpdatableField);
      tabledef.CreateField("燃烧物质类别编号", dbLong, 4, dbUpdatableField);
      tabledef.CreateField("单位类别编号", dbLong, 4, dbUpdatableField);  CTypeRecordset *psetType = new CTypeRecordset(m_pdbDatabase);
      try
     {
         psetType->Open(dbOpenTable, "车辆类别");
         if(!(psetType->IsBOF() && psetType->IsEOF()))
         {
    psetType->MoveFirst();
    while(!psetType->IsEOF())
    {
      if(psetType->m_lIndex != 0)
      {
        tabledef.CreateField(psetType->m_strName, dbLong, 4, dbUpdatableField);
        
    }
             psetType->MoveNext();
         }
      }

    }
     catch(CDaoException *e)
    {
       e->ReportError();//当字段超过21个的时候,就跳到这里报错
       e->Delete();
    }

    delete psetType;
    tabledef.Append();
    tabledef.Close();
    }
    catch(CDaoException *e)
    {
      e->ReportError();
      e->Delete();
    }
    大侠帮忙了,急!!!!