代码之家  ›  专栏  ›  技术社区  ›  eKek0

如何以本机方式读写dbf?

  •  8
  • eKek0  · 技术社区  · 14 年前

    在DelphiforWin32中,如何在没有BDE的情况下以本机方式读写dbf文件?我知道网上有一些组件,但我从来没有使用过,所以我不知道该选哪一个(如果有的话)。

    6 回复  |  直到 4 年前
        1
  •  18
  •   RRUZ    14 年前

    可以使用ADO访问DBF文件

    参见示例代码(使用 TAdoConnection TAdoDataSet

    var
    dbf_folder : string;
    begin
      dbf_folder:='c:\bdd';//set your dbf folder location here 
      ADOConnection1.LoginPrompt:=false;
      ADOConnection1.ConnectionString:=Format('Provider=Microsoft.JET.OLEDB.4.0;Data Source=%s;Extended Properties=dBase IV;',[dbf_folder]);
      try
      ADOConnection1.Connected:=True;
      ADODataSet1.CommandText:='Select * from file.dbf'; //make your SQL query using the name of the dbf file
      ADODataSet1.Open;
       while not ADODataSet1.eof do
       begin
       //do your stuff here
       //ADODataSet1.FieldByName('').AsString
       ADODataSet1.Next;
       end;
      except
        on E : Exception do
          ShowMessage(E.Message);
      end;
    end;
    
        2
  •  9
  •   Runner    14 年前
        3
  •  2
  •   jrodenhi    14 年前

    Topaz 在我开始使用Firebird之前,我在软件科学领域工作了很多年。它一直是一个优秀的图书馆,有一本极好的手册和良好的技术支持。它支持索引,甚至还有内存选项。我想这是个不错的选择。

        4
  •  2
  •   rajeemcariazo    14 年前
        5
  •  2
  •   Dany    8 年前

    ADO不适用于我,但我使用BDE打开了我的dbf文件:

    从数据访问(或BDE,取决于您的Delphi版本)部分,我放置了一个TDataBase和TTable组件(如果需要,可以使用TQuery)。

    然后在TTable component中设置DatabaseName='db\u name'-我在TDataBase component中设置的名称。和TableName属性集“DB”_文件.dbf'位于指定文件夹中。 活动=真。

    你知道下一步该怎么做吗

        6
  •  0
  •   Eduardo Mauro    14 年前

    如果不需要索引,那么读取DBF文件并不困难。格式非常简单。固定大小寄存器后面的头。每个寄存器中都有一个标志,指示是否删除它。我建议你找一个你想要的部件。你可以找到一些 in Torry's Delphi pages