dbfTable.DatabaseName := ls_localpath;
 dbfTable.TableType :=ttFoxpro;
 dbfTable.TableName := 'infodef';
 dbfTable.FieldDefs.Clear;
 dbfTable.FieldDefs.Add('field1',ftInteger,0,false);
 dbfTable.FieldDefs.Add('field2',ftString,8,false);
 dbfTable.FieldDefs.Add('FLAG',ftInteger,0,false);
 dbfTable.IndexDefs.add('servindx','field2',[ixCaseInsensitive]);
 dbfTable.CreateTable;

解决方案 »

  1.   

    将代码顺序改为:
    dbfTable.CreateTable;
    dbfTable.IndexDefs.add('servindx','field2',[ixCaseInsensitive]);
      

  2.   

    dbfTable.DatabaseName := ls_localpath;
     dbfTable.TableType :=ttFoxpro;
     dbfTable.TableName := 'infodef';
     dbfTable.FieldDefs.Clear;
     dbfTable.FieldDefs.Add('field1',ftInteger,0,false);
     dbfTable.FieldDefs.Add('field2',ftString,8,false);
     dbfTable.FieldDefs.Add('FLAG',ftInteger,0,false);
     dbfTable.CreateTable;
     dbfTable.open;
     dbfTable.IndexDefs.add('servindx','field2',[ixCaseInsensitive]);
     dbftable.createIndex;但这样建出来的表,不支持Number类型
      

  3.   

    正准备问如何建立dbf表的问题,这个问题真是雪中送炭呀(哈哈,省分了)。顺便问一句,这句
      dbfTable.DatabaseName := ls_localpath;中的ls_localpath是不是在CreateTable前提前建立的别名