2011-07-15 13 views
1

最近、私は約16k Corel Paradox 4.0データベーステーブルを変換する方法を検討し始めました(私のクライアントは20年以上のレガシープラットフォーム主に巨大な物語の問題のため)をより現代的なフォーマット(すなわち、CSV、SQLなど)に変換しています。これまでParadoxのデータ処理に専念したライブラリがあるので、PHPを見てきました。変換コードを書く方法(つまり、単にいくつかのファイルを開いて閉じる関数と書き込み関数を呼び出す)私はエラー検出を心配し、スクリプトを実行するときには、 16kの破損ファイルがエクスポートされました。Corel Paradox 4.0テーブルをCSV/SQLに一括変換する - PHPまたはその他のスクリプトを使用して

また、ファイルを呼び出すためのロジックループについては完全にはわかりません。私は、プログラムが適切な拡張子を持つすべてのファイルのリストを生成してリストをループすることを考えていますが、このサイズのディレクトリには理想的かどうかはわかりません。

これはXAMPPをセットアップしたローカルのWindows 7 x64システム上で実行されています(データベースはすべて内部使用です)ので、純粋なPHPがベストアイデアかどうかはわかりません。これを処理するためには、他の軽量スクリプト言語が優れているかもしれません。任意の洞察力と支援のために事前に非常に多くの

おかげで、あなただけの私はあなたがコマンドスクリプトとしてローカルスクリプトを実行します一度、あなただけ行うプロセスである推測データを変換する場合

+0

: を参照してくださいhttp://stackoverflow.com/a/23118465/1576438 –

答えて

0

。そのためにはWebサイトが必要ないため、XAMPPが必要です。あなたが取る言語は、PHPがライブラリを持っているということ以外は二次的です。 Pythonや他の人が持っていますか?

エラー検出の懸念については、最初に1つのファイルでスクリプトをテストしてみましょう。その変換が成功した場合は、ループを構築して5つのファイル、つまりその番号の後にプロセスを終了するカウンタを作成してテストできます。それはまだ残っているといいですよ。ログデータを書き込んで、100個のファイルごとに結果をダンプすることもできます。こうすることで、あなたのスクリプトが何かをやっているかどうかを知ることができます。

+0

お寄せいただきありがとうございます。言語に関して、私はPHPを主な背景としており、彼らにはライブラリが組み込まれています。エラーチェックに関しては、優れたアイデアです。この場合、シンプルさは本当に最高のトラックです。私の前任者は、しばらく後にマイグレーションを試みました。私は修正しようとした畳んだコードのページにページを書きましたが、時間を無駄にして最終的に廃止しました。 – theonlylos

1

これは、1つは、Corelのパラドックス作業環境を持っている場合は、1だけの移行を容易にするためにそれを使用することができます...

間違いなくあなたを助けるために遅すぎですが、後世のために。

我々は、我々はその後、パラドックス内側からスクリプトでこの手順を書いて(例えばSCHEMA001としてエイリアスを使用して)スキーマに接続することによって構築されたOracleスキーマの中に持っていたコーレルパラドックス9つのテーブルに移動:

Proc writeTable(targetTable String) errorTrapOnWarnings(Yes) try tc.open(targetTable) tc.copy(":SCHEMA001:" + targetTable) tc.close() onFail errorShow() endTry endProc

多くのParadoxプログラミングでこれを洗練させることができますが、あなたはそのアイデアを得ることができます。ただし、ParadoxはOracleのバージョンを作成するときに列名に二重引用符を使用するため、Oracleの列名に小文字を使用することができます。これは苦痛です。結果の列名をすべてupper()にするという簡単なOracleクエリーを記述することで、この問題を修正しました。

我々はそうのようなプロシージャを呼び出した:私はこの質問が古いが、記録のためだと思い

Var targetTable String tc TCursor endVar

method run(var eventInfo Event) targetTable = "SomeTableName" writeTable(targetTable) msgInfo("TransferData.ssl--script finished", "That's all, folks!") return endMethod

関連する問題