0

古い dbf ファイルのデータを読み取り/保存する C# アプリケーションに取り組んでいます。(Microsoft Visual FoxPro - ドライバーを使用) 最近、以前に使用したことのないテーブルをクエリしようとしたときに、このエラー メッセージが表示されるまで、問題はありませんでした。このテーブルには 500 以上の列があるため、多少特殊です。これに関係があるのではないかと思いますが、これまでにグーグルで検索したことはありません。

このドキュメントを見て、ヘッダー レコード数が実際の数 (1 レコード) と一致することを確認しました。このドキュメントは、これまでに見つけた唯一の優れたヒントであり、重い dbf 修復ツールを必要としません。

Microsoft Visual FoxPro と VFPOLEDB ドライバーの両方を使用してみましたが、両方とも多かれ少なかれ同じエラー メッセージが表示されます。

TableValidate = 0コマンドを渡そうとしましたが、成功しませんでした。

できればC#を使用して、これを解決/回避する方法を経験した人はいますか。

4

3 に答える 3

4

VFP テーブルは 500 列をサポートしていないため、これは VFP テーブルではありません。それがどのような種類のテーブルであるかを調べ、適切なドライバーを使用して開く必要があります。

于 2012-01-04T21:57:04.643 に答える
0

Tamarからのコメントから、.DBFファイル形式を使用するさらに別のアプリケーションデータベースについて考えるようになりました...Clipper。これらのテーブル容量を説明するリンクは次のとおりです。

Apolloデータベース-(クリッパー)

これは、探しているリンクが欠落している可能性があります。

于 2012-01-05T02:03:36.253 に答える
0

テーブルが破損している場合は、CmRepair.appを使用して修正できます。このプログラムは Visual Foxpro 8 アプリケーション (コンパイル済みの .EXE ではない) であるため、実行するには VFP が必要です。

VFP がインストールされていない場合は、VFP がインストールされていない顧客で VFP スクリプトと .APP を実行するために作成したユーティリティ プログラムをダウンロードできます。VFP8 ランタイムは、こちらから入手できます。次に、プログラムを実行しrunner CmRepair.appてテーブルを修復します。

幸運を!

于 2012-01-04T13:04:18.447 に答える