0

Advantage Server 9xを使用して、次のコードを使用してDBF/CDXテーブル構造のコピーを作成しようとしています。

table1.AdsCopyTableStructure(d.AdsConnectionTemp.connectPath+'table.dbf');

元のテーブルがttAdsCDXであっても、作成されるテーブルのタイプはttAdsADTです。

結果のテーブルでAdsConvertTableを使用しようとしましたが、空きテーブルでは操作を実行できないという例外が表示されます。

これを行う方法はありますか?

4

2 に答える 2

0

いくつかのオプションがあります。単一のレコードを持っていてもかまわない場合は、いつでも実行できます

oldtableからmynewtable.dbfにトップ1*を選択します

速いです

2番目のオプションは、最初のメソッドを実行し、それをadtファイル(デフォルト)に保存してから、そのテーブルを開き、ADSConvertTable関数を使用してDBFを作成することです。

ADTTable.ADSTableConvert('dbftable.dbf'、ttADSCDX);

于 2010-11-18T01:16:25.420 に答える
0

この関数を機能させることができませんでしたが、次のコードを使用して回避策を考え出しました。

 t:=TAdsTable.create(nil);
 try
      t.AdsTableOptions.AdsFilterOptions:=RESPECT_WHEN_COUNTING;
      t.open;
      t.AdsSetAOF('keyval=-1'); // gives an empty result
      t.AdsCopyTable('c:\somewhere\emlt.dat');
      t.close;
 finally
      freeAndNil(t);
 end;
于 2010-11-17T21:21:40.383 に答える