2016-08-02 24 views
0

私たちはDelphi XEでInterbase XE3(2013)を使用しています。InterbaseからCSVへのエクスポート

テーブルをCSVファイルとしてエクスポートする必要があります。これらのテーブルは、管理のためにMsAccessにインポートされます。

エクスポートするには、IBExpertの機能および/または独自のプログラム(CSVファイルとしてエクスポートするには、cxGridのTClientDataSetを使用します)を使用します。

問題: 残念ながらエクスポートは制限されており、テーブル全体をエクスポートするソリューションはありません(この場合は400k行、約80列、毎月増加しています)。

私はFBExportについて読んだことがありますが、私たちのデータベースの問題を冒したくないので、まだテストしていません。誰もこのツールをまだテストしましたか?

適切な解決策: サイズ/列/行の制限なしに、Interbase XE3からテーブル全体をCSVファイルにエクスポートする方法が必要です(そのため、CSVはオーバーヘッドはありません)。また、私はコンピュータの前で人を必要とせずにバッチファイルで実行できるソリューションを好むだろう。

種類について

+0

具体的には、編集するときに空白行を追加して段落を紹介し、質問をより読みやすくしてください。 – AlBlue

+1

なぜODBCまたはOLE-DBプロバイダを使用せずにAccessを直接Firebird/Interbaseに接続するのですか? –

+0

あなたのデータベースを読み取り専用の状態にして、 'FBExport'や' FBCopy'や 'FlameRobin'や他のツールはデータを変更することができません。 –

答えて

0

私はAriochのおかげでこの問題に答えることができました。

"name of db"と "fetchする行"(+オプションのディバイダ)の2つのパラメータがあります。 私のプログラムでは、テーブル内の行数(Count(ID)のみ)を取り出し、「取り出したい行」の部分に分割します(前にメモリが足りなくなったため)。

エクスポートファイルは最初に作成されます最初の行として私のibcqueryから取得した列名を使用します。また、最大。私の多次元配列の幅は、tableのcolumncountによって設定されます。長さは "フェッチするロー"です。

ステートメントは、「SELECT * FROM TABLENAME ROWS X TO Y」のようです。 これは、テーブルの分割された部分ごとに実行され、配列に書き込まれます。配列を埋めると、クエリは閉じられ、データはCSVファイルに追加されます。私は配列を解放し、次の部分はテーブル全体が私のファイルに書き込まれるまでロードされます。

次の制限はファイルサイズになると私は思う。

ありがとうございました!

関連する問題