能不能这样,在BDE中建立一个oracle类型表(应该有其驱动),同时建立一个dbase4(dbf)表,在程序中加代码转化一下。

解决方案 »

  1.   

    就是读oracle表,然后写到dbf表中。
      

  2.   

    LLSS666 (雪饮狂刀):
      delphi5.0以上版本中有一个数据库转换工具 Datapump软件,你可以先在BDE工具中设置一个Oracle数据库的别名后,再增加一个dbase4(dbf)的数据库别名(设置好路径名称),接着执行Datapump软件,先选择Oracle数据库的别名后,点击下一步后,选择dbase4(dbf)的数据库别名后,点击下一步,选择Oracle数据库的所有表,再点击下一步,然后点击updatesizer按钮就可以完成。以上具体步骤可根据提示执行。如有问题可以我联系:[email protected] 小黄
      

  3.   

    我要在程序中完成,并且dbf文件是动态生成的
      

  4.   

    把数据库转来转去是开发项目中比较常见到的问题
    你的问题是怎么把oracle导成dbf..
    和很简单。你首先连接oracle数据库,然后动态建立一个dbf空文件。。子段与orale相同,并用table空健连接改动态建立的文件然后读oracle..写dbf
    下面是我写的一段源码
    procedure TForm4.Button1Click(Sender: TObject);
    begin
      savedialog1.execute;
      if(savedialog1.FileName<>'') then
      begin
        copyfile(pchar(ExtractFilePath(Application.ExeName)+'1.dbf'),pchar(savedialog1.FileName+'.dbf'),false);
        table1.close;
        table1.Databasename:=extractfilepath(savedialog1.FileName+'.dbf' );
        table1.tablename:=extractfilename(savedialog1.FileName +'.dbf');
        table1.open;
        adotable1.First;
      while(not adotable1.Eof) do
      begin
        table1.Insert;
        table1.FieldByName('zsid').Asstring:=adotable1.Fields[0].Value;
        table1.FieldByName('zkz').Asstring:=adotable1.Fields[1].Value;
        table1.FieldByName('xm').Asstring:=adotable1.Fields[4].Value;
        table1.FieldByName('sfz').Asstring:=adotable1.Fields[6].Value;
        table1.FieldByName('zkyx').Asstring:=adotable1.Fields[7].Value;
        table1.FieldByName('zycc').asinteger:=adotable1.Fields[2].Value;
        table1.FieldByName('xb').asinteger:=adotable1.Fields[5].Value;
     // showmessage(inttostr(adotable1.Fields[3].Value));
        table1.FieldByName('zy_dm').asinteger:=adotable1.Fields[3].Value;
        table1.FieldByName('bysj').asdatetime:=adotable1.Fields[8].Value;
        table1.Post;
        adotable1.Next;
      end;
      if(adotable1.Eof=true) then
        showmessage('导出结束');
      end;
    end;
      

  5.   

    copyfile(pchar(ExtractFilePath(Application.ExeName)+'1.dbf'),pchar(savedialog1.FileName+'.dbf'),false);
    这种方法大不好,会有很多问题
    用ADOX直接新建fox表比较好
      

  6.   

    copyfile(pchar(ExtractFilePath(Application.ExeName)+'1.dbf'),pchar(savedialog1.FileName+'.dbf'),false);
    这种方法大不好,会有很多问题
    用ADOX直接新建fox表比较好
      

  7.   

    不需要写代码了,本身就有一个叫Dateump的工具。而且操作非常的清晰,明了。你只需选择你需要导入的表的数据库别名。一般是在SQLExploer上要设置。然后,选择表名。然后点击就可以了。以前做项目时,数据备份时曾用到过。没问题的。