delphi 如何以原生方式读写dbf?

brqmpdu1  于 2023-03-18  发布在  其他
关注(0)|答案(7)|浏览(207)

在 Delphi for Win32中,如何在不使用BDE的情况下以本机方式读写dbf文件?我知道在Web上有一些可用的组件,但我从未使用过它们中的任何一个,所以我不知道该选择哪个(如果有的话)。

gc0ot86w

gc0ot86w1#

可以使用ADO访问DBF文件
请参见示例代码(使用TAdoConnectionTAdoDataSet组件)。

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;
wmtdaxz3

wmtdaxz32#

当我还在处理DBF文件(一些遗留应用程序)时,我使用了TDBF。我仍然在这里和那里使用它来维护那些应用程序。它是免费的,有很多功能,而且运行良好。

wvmv3b1j

wvmv3b1j3#

在我开始使用Firebird之前,我使用Software Science的Topaz很多年了。它一直是一个优秀的库,有一个很棒的手册和良好的技术支持。它支持索引,甚至有一个内存选项。我认为它会是一个很好的选择。

xt0899hw

xt0899hw5#

ADO没有为我工作,但我设法打开我的dbf文件使用BDE:
从数据访问(或BDE,取决于您的 Delphi 版本)部分,我把一个TDataBase和,TTable组件(如果你愿意,你可以使用TQuery)。
双击TDataBase组件打开安装对话框,在名称字段中填入“db_name”(名称可以是任意的),驱动程序名称=“STANDARD”,参数字段:'路径=C:\路径\到\DBF_FILES'。然后我设置连接=真。
然后在TTable组件中设置DatabaseName = 'db_name' -我在TDataBase组件中设置的那个。并且TableName属性设置位于指定文件夹中的'DB_FILE.dbf'。Active = True。
你知道下一步该怎么做

2exbekwf

2exbekwf6#

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

3hvapo4f

3hvapo4f7#

你可以试试这个简单的方法

Query1.Close;
Query1.DatabaseName := ExtractFilePath(Application.ExeName); //path to your file
Query1.SQL.Text := 'SELECT * FROM Test_123.dbf';
Query1.Open;

相关问题