2011-01-31 19 views
1

Delphi 2009を使用しています。私はcsvファイルとその中のcsvファイルからデータを取得するTADOQuery(TADOQueryCSVと呼ぶ)を含むTADOConnectionフォルダを持っています。それはOKです。別のクエリでTADOQueryの結果を使用しますか?

AccessTbl_TEMPという名前のテーブルとそこにデータを処理するさまざまなTADOQueriesを持つAccessデータベースへの2番目のTADOConnectionもあります。彼らはうまくいく。

TADOQueryCSVから返されたデータを処理し、Accessデータベースのテーブルに挿入します。しかし、どのように私はcsvファイルから返されたデータを参照するのですか?

私はこのようなものが必要ですが、FROM句の記述方法はわかりません。

INSERT INTO AccessTbl_TEMP(フィールド1、フィールド2) SELECT csvField1、csvField2 TADOQueryCSV FROM。

答えて

0

リンクテーブルがCSVファイルを指すMS Accessリンクテーブルを使用する必要があります。

+0

私は現時点で何をしていますか。私はMSAccessテーブルのリンク(特に顧客のマシンにインストールされている場合)から脱出しようとしていましたが、アクセスデータベースをそのままデータベースとして残しています。また、私はアクセスを落とし、firebirdや何かを使いたいので、処理を行うにはdelphiが必要です。 – dochsm

+0

次に、データをテンポラリテーブルに移動して、クエリでそのコンテンツを使用することができます。しかしそれは完全な操作を遅くします。 –

+0

IN演算子を使用してFROM句に接続文字列を含めることができます。正確な構文は、あなたの詳細に依存しますが、私が常にやることは、リンクされたテーブルを作成し、その結果の接続文字列を取得し、クエリデザイナーを使用して、関連する2つのクエリプロパティ、文字列を接続します。 –

2

デルファイでコード内のデータを移動することができます。 dsSourceはTADOQueryCSVで、dsTargetはテーブルAccessTbl_TEMPです。

dsSource.First; 
while not dsSource.Eof do 
begin 
    dsTarget.Append; 
    // Assign field values from dsSource to dsTarget 
    dsTarget.Post; 
    dsSource.Next; 
end; 
関連する問題