8

Delphi for Win32で、BDEを使用せずにネイティブな方法でdbfファイルを読み書きするにはどうすればよいですか?Webで利用できるコンポーネントがいくつかあることは知っていますが、それらを使用したことがないため、どれを選択すればよいかわかりません(ある場合)。

4

6 に答える 6

18

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;
于 2010-09-26T00:34:55.143 に答える
9

DBFファイル(一部のレガシーアプリ)をまだ使用していたときに、TDBFを使用していました。私は今でもあちこちでそれらのアプリのメンテナンスのためにそれを使用しています。それは無料で、多くの機能があり、うまく機能します。

于 2010-09-26T05:55:51.453 に答える
2

Firebirdを使い始める前は、SoftwareScienceのTopazを何年も使用していました。それは常に優れた図書館であり、素晴らしいマニュアルと優れた技術サポートがありました。インデックスをサポートし、メモリ内オプションもあります。それは良い選択だと思います。

于 2010-09-25T23:32:15.067 に答える
2

ApolloデータベースVCL

于 2010-09-26T02:15:22.827 に答える
2

ADOは機能しませんでしたが、BDEを使用してdbfファイルを開くことができました。

データアクセス(またはBDE、Delphiのバージョンによって異なります)セクションから、TDataBaseおよびTTableコンポーネントを配置しました(必要に応じてTQueryを使用できます)。

TDataBaseコンポーネントをダブルクリックして、セットアップダイアログを開きました。[名前]フィールドに「db_name」(名前は任意)、ドライバー名=「STANDARD」、パラメーターフィールド:「PATH = C:\ Path \ To \DBF_FILES\」を入力しました。次に、Connected=Trueを設定します。

次に、TTableコンポーネントでDatabaseName='db_name'を設定します。これはTDataBaseコンポーネントで設定したものです。そして、TableNameプロパティは指定されたフォルダにある'DB_FILE.dbf'を設定しました。アクティブ=真。

あなたは次に何をすべきか知っています

于 2016-08-12T06:19:34.203 に答える
0

インデックスが必要ない場合は、DBFファイルを読み取るのは難しくありません。形式は非常に単純です。固定サイズのレジスタの後に続くヘッダー。各レジスタには、削除されたかどうかを示すフラグがあります。私はあなたが望むことをするコンポーネントを探すことを提案します。TorryのDelphiページでいくつか見つけることができます。

于 2010-09-25T23:25:29.650 に答える