代码如下:编译和执行都没错,但是执行后biao1.dbf打不开?
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
table2:Ttable;
begin
table1.DatabaseName:='E:\xie\email阅卷程序\CheckEmail';
table1.TableName:='251.db';
table1.Open;
table2:=Ttable.Create(self);
table2.DatabaseName:='E:\xie\email阅卷程序\CheckEmail';
table2.TableName:='biao1.dbf';
table2.TableType:=ttDbase;
table2.FieldDefs.Clear;
for i:=0 to table1.FieldDefs.Count-1 do
 table2.FieldDefs.Add(table1.FieldDefs.Items[i].Name,table1.FieldDefs.Items[i].DataType,table1.FieldDefs.Items[i].Size,table1.FieldDefs.Items[i].Required);
table2.CreateTable;
table2.Open;
batchmove1.Destination:=table2;
batchmove1.Execute;
table2.Close;
table2.Free;
table1.Close;
end;

解决方案 »

  1.   

    你是说数据库转化的问题吗?
    有问题请发信息到我的E-mail:[email protected]
      

  2.   

    你拿什么打开的?
    我试过用database desktop打开没有问题
      

  3.   

    大哥:
       dbf是visula foxpro的文件呀,当然用visual foxpro打开!
    但打开没东西呀
    我让他加字段怎么也加不上去?
    程序是不出错的,就是看不到我加的字段?
      

  4.   

    我没有用过visula foxpro,但我想应该是和BDE的设置有关系。导致生成出来的dbf版本不同。
    下面是bde的帮助
    Since FoxPro is an xBASE application, its driver settings are virtually identical to dBASE's except that LEVEL must be set to 25 to read and write a .DBF table in FoxPro format.
    试试
      

  5.   

    两种数据库的类型不一样,
    table2.FieldDefs.Add(table1.FieldDefs.Items[i].Name,table1.FieldDefs.Items[i].DataType,table1.FieldDefs.Items[i].Size,table1.FieldDefs.Items[i].Required);
    这个地方要重点看一下,
    batchmove1.Destination:=table2;
    batchmove1.mode=batcopy;
    batchmove1.Execute;
      

  6.   

    大哥:
      我用DbGrid控件可以看到了,但是哪个用visula foxpro打开biao1.dbf他说不是一个表
    打不开
    是不是还只在内存里,没写入硬盘?
      

  7.   

    试试修改bde中configration|drivers|bative|dbase|Level,把他改为25.
    然后再试试你的程序.
      

  8.   

    table2.tabletype是什么?检查一下。
      

  9.   

    你的table2.TableType:=ttDbase;,VFP当然打不开,
    table2.TableType:=ttFOXPRO;试试。
      

  10.   

    大哥们:
       导还是导过来了
      但是我的db有一个字段xm类型为Alpha,内容为中文
      但是我导到dbf里xm里的内容是乱码!
    怎么办?