2

DBFファイルをSQLデータベースに変換する方法について多くの解決策を見てきましたが、DBFファイルを参照するプログラムを再コーディングせずにテーブルを変換する方法はありますか?

たとえば、DBF ファイルを SQL テーブルに変換し、SQL データベースへのポインタだけを残して dbf ファイルをそのままにしますか?

目標は、(コードを移行するまで) 既存のアプリケーションを実行できるようにすることですが、データは SQL に保持しますか?

4

3 に答える 3

2

DBF コンテキスト内から SQL にリンクし、コードが DBF を介して SQL Server にシームレスに流れ、途中で両方を最新に保つツールを見つけることはできないと思います。

毎日のトランザクションがどれほど複雑であるか、または大規模であるかに応じて、SQL に完全にコミットする準備が整うまで、定期的に実行される SSIS パッケージをセットアップして、DBF ファイルから SQL テーブルにデータを流し続けることをお勧めします。

別のオプションは、反対方向にアプローチすることです。リンク サーバーをセットアップするか、SQL 内から DBF ファイルへの行セットを開き、SQL 側でいくつかのストアド プロシージャを構築します。これらのストアド プロシージャは、構築する必要があるtsql マージステートメントまたはその他のクエリを使用して定期的にデータをマージします。

于 2012-10-09T20:31:54.170 に答える
0

アプリケーションは、ドライバーを使用してデータベースと対話します。2 つのデータベース (DBF と、MySQL などのその他のデータベース) は、その間にドライバに何をすべきかを伝えるアプリケーションがなければ、相互に対話できません。したがって、既存のアプリケーションは SQLDatabase と同様に DBF とやり取りできますが、DBF ファイルを作成して SQL Database とやり取りすることはできません。
他の人が示唆しているように、この目的には SSIS を使用できます。

于 2012-10-09T20:45:17.613 に答える
0

そのようなものに最も近いと思うのは、SyBase の iSQLAnywhere を使用することです。彼らは、.DBF ファイルを直接認識できるように、SQL データベースを特別にピックアップして統合しました。ただし、他の人が述べたように、データを取得するにはデータベースへの接続を作成する必要があります。他のデータベースなどの単一の「データベース」に埋め込むのではなく、空きテーブルを指す「データベース」をiSQLAnywhereで作成できます...

DBF から sql への変換をいくつか行いましたが、フロントエンドの一貫性を維持するために行った 1 つのアプローチは、.PRG ベースの一連のプロシージャを作成することです。アプリが VFP で、全体にプライベート データ セッションとデフォルト データ セッションがある場合、どのクラスもフォームの「データ セッション」を尊重するため、「デフォルト」データ セッションでクラスを作成した場合、プライベートなフォームを実行すると汎用クラスを呼び出してテーブルを照会して開くと、開いたテーブルはフォームのセッションではなく「デフォルト」セッションで認識されます。

そうは言っても、私が行ったもう 1 つのことは、接続を開き、それぞれ true/false を返し、中央の場所でデバッグできるようにする単一の関数を用意することでした。接続が有効な場合は、指定された sql コマンドを実行します。ここで、"person" テーブルなどの特定の "エイリアス" 名が開かれることを期待している場合は、sqlexec( lcSomeCommand, "AliasYouWant" ) を使用すると、残りのほとんどが表示および編集のために機能します。SQL Insert/Update を使用して変更をプッシュ バックする必要がありますが、パラメーター化された SQL パススルーを使用すると非常に簡単です。

于 2012-10-10T12:14:54.437 に答える