我们现在用delphi和oracle9i开发了一个小型的PDM,现在想实现对数据版本的管理。简单举例说就是:如果把数据库中的原始表比作一个word文档的话,每次对文档进行修改,都需要另存为一个新的版本。
我们的解决方案是:每次数据有个改动(增,删,改),则将数据表另存到指定的目录下,存为.dbf文件。当别人想查看这写版本的文件时再将.dbf文件导入oracle,然后用delphi控件访问这些数据。
请教高手们:.dbf文件的导入,导出怎么处理啊??如果哪位高手有更好的方案,麻烦不吝指教啊!!高分酬谢!!!

解决方案 »

  1.   

    没有直接导出成dbf的,先从oracle用一个query查出来,一条条的写入dbf文件
    dbf有一个单独的组件tdbf 在 www.sourceforge.net/projects/tdbf
      

  2.   

    procedure TForm1.SpeedButton1Click(Sender: TObject);
    var tablename:string;
    begin
      tablename:='test5.dbf';
      adoquery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=D:\dbf;Extended Properties=dbase 5.0;Persist Security Info=True';
      
    try
      begin
      with AdoQuery1 do
      begin
        close;
        sql.Clear;
        sql.Add('select * into '+tablename+' from SP_SOFTUSER in [ODBC][ODBC;Driver=Microsoft ODBC for Oracle;UID=SPARE_PART;PWD=MANAGER;SERVER=O9IDB]');
        ExecSQL;
      end;
      showmessage('成功导出为dbf文件.');
    end
    except
      showmessage('导出失败!');
    end;
    end;这个程序可以执行,如果在oracle数据库中新建一张表,则能成功通过。但是如果不是新表的话总提示“找不到输入表或查询”,请高手帮帮忙啊!!跪求代码!!!
      

  3.   

    这个程序可以执行,如果在oracle数据库中新建一张表,则能成功通过。但是如果不是新表的话总提示“找不到输入表或查询”,请高手帮帮忙啊!!跪求代码!!!---------------注意:表名的大小写。
      

  4.   

    在oracle中表名都是大写的呀!
      

  5.   

    3楼中提到的错误,哪位高手帮忙解决下啊!!谢谢各位大哥大姐了!!
    我确定表名决对正确,权限也是DBA了,但是执行时总出错:microsoft jet 数据库引擎找不到输入表或查询'SP_SOFTUSER'。确定它是否存在,以及它的名称的拼写是否正确。
    跪求解决方案!!!在线等!!!高分酬谢!!!