4

We need to read data from FoxPro 8 with C#. I'm gonna do some operations, and will push some of thoses data to an SQL Server database. We are not sure what's best method to read those data.

I saw OLE DB and ODBC; what's best?

REQUIRMENTS:

  1. The export program will run each night, but my company runs 24h a day.
  2. The DBF could sometimes be huge.
  3. We DON'T need to modify data.
  4. Our system, wich use FoxPro, is quite unstable: I need to find a way that ABSOLUTELY do not corrupt data, and, ideally, do not lock DBF files while reading.
  5. Speed is a minor requirement: it must be quick, but requirement #4 is most important.
4

4 に答える 4

5

私は OLEDB コネクタを使用します。これは最近更新され、より高速で、メモリの処理が改善されています。

OLEDB ドライバーを介して DBF からデータを読み取るだけであれば、レコードまたはファイル レベルでのロックやデータの破損について心配する必要はありません。必要なのは、C# コードで例外を処理することだけです。たとえば、FoxPro アプリケーションの一部のプロセスで DBF が排他的に開かれており、それを読み取ることができない場合などです。

また、DBF ファイルで使用可能なインデックスを使用するようにクエリが最適化されていることにも注意する必要があります。特に、サイズが大きいと述べているためです。

これはすべて同じLAN上にあると思いますか?インターネット経由で動作する必要がある場合は、Web サービスを介して FoxPro データを公開することを検討する必要があります。

最後に、DBF ファイルにアクセスするための他のオプションがあります。

Sybase は、 DBF ファイルにアクセスできるODBCおよびOLEDBドライバーも提供していますが、FoxPro トリガー、ストアド プロシージャなどは使用できません。ただし、それはあなたの場合はほとんど問題になりません。

于 2012-09-25T15:32:35.060 に答える
2

このMSDNの記事によると、Visual FoxProOLEDBプロバイダーの使用を提案しています。記事を見ると、OLEDBプロバイダーの使用方法とDBFデータソースからのデータのクエリ方法の例が示されています。

于 2012-09-25T15:36:05.720 に答える
0

CodeplexにはLinqToVfpツールがあります。参照: http: //linqtovfp.codeplex.com

それはあなたが始めるのを助けるいくつかの素晴らしいサンプルを持っています。

于 2012-10-09T03:09:21.393 に答える
0

データを CSV または XML にダンプするコードを VFP で記述するのも非常に簡単です。このコードを FoxPro アプリケーションに追加することを検討してください。これらのファイルの処理は、不安定な FoxPro データベースに接続するよりもはるかに簡単です。

于 2012-09-26T23:48:03.570 に答える