1

バッチ結果をフォルダ内の単一のDBase4(* .dbf)ディスクファイルに記録する機器のソフトウェアに取り組んでいます。これらの複数のDBFファイルで動作するように計画されている新しいロギング分析機能を追加する準備として、DelphiADOコンポーネントを使用するためにそれぞれ新しいDBFファイルを再度開いて作成する既存の単純なBDETTableとCreateTableを変更します。

SOで他の提案を使用して、TAdoDataSetとTAdoConnectionを使用して次のコアコードを使用して既存のDBFファイルを開くテストアプリケーションを正常に作成しました。

ADODataSet1.DisableControls;
try
  S := ExtractFileDir( ParamStr(0) ); //set the dbf folder location here
  ADOConnection1.LoginPrompt:=false;
  ADOConnection1.ConnectionString:=Format('Provider=Microsoft.JET.OLEDB.4.0;Data Source=%s;Extended  Properties=dBase IV;',[S]);
  ADOConnection1.Connected:=True;
  ADODataSet1.CommandText:='Select * from test.dbf'; //The SQL query uses the name of the dbf file
  ADODataSet1.Open;
finally
  AdoDataSet1.EnableControls;
end;

これは正常に機能しますが、DBFを初めて使用する前に、ログレコードを追加する準備ができている空のDBFファイルも作成する必要があります。毎回既存の「空の」DBFファイルを開くことでこれを行うことができますが、SQLがあることを期待していましたか?フィールドをすでに作成して定義している場合のファイルの作成方法(これは私にとって簡単です)。必要なフィールドを作成できるTAdoTableでこれを試しましたが、主にADOの例が非常に多いが、ほとんどの場合既存のものに取り組んでいるため、このテーブル構造をディスクに出力する方法の例は見つかりませんでした。データテーブル。

ADOコンポーネントを使用して、いくつかのフィールドを含むサンプルDFBテーブルファイルを作成するのを手伝ってくれる人はいますか?そうすれば、それを基に構築できると確信しています。

どうもありがとう。

4

1 に答える 1

2

TADOCommandを使用して、CreateTableSQLを実行します。たとえば次のようになります。

Create Table Test (TestField1 char(64), TestField2 integer)
于 2012-05-13T21:23:06.967 に答える