Visual Studio 2008 (vb.net) でプロジェクトに取り組んでいます。アプリは、Visual FoxPro データベース (dbc ファイル) からデータをインポートする必要があります。FoxPro の理由を聞かないでください。vfp である必要があり、データベースは別のアプリケーションによって毎日更新されます。したがって、他のデータベース形式は使用できません。
OleDb FoxPro ドライバー (最新バージョン) を介してデータベースに接続します。すべてが問題ありません(速度は別として)。必要なすべてのテーブル (dbf ファイル) からデータをインポートできます。それをデータセットにロードしてから、データセット自体を操作して、再接続に時間がかからないようにします (この段階でデータを読み取る必要があるだけです)。
問題は 、コードをコンパイルして実行すると、すべてのレコードが表示されないことです。
ただし、Releaseフォルダー ( binディレクトリ内) からコンパイルされたバージョンを実行すると、アプリはより多くのレコードを表示します。
さらに困惑しているのは、Visual FoxPro 9.0 で同じデータテーブル ファイルを開くと、VS2008 で表示されているデータしか表示されない (Realease バージョンでは表示されない) ことです。ただし、OpenOffice Calc で dbf を開くと、すべてのレコードが表示されます。つまり、アプリのリリース バージョンと同じレコードです。
私が最初に考えたのは、VFP 9 ですべてが表示されない場合、ファイルは別のバージョンの VFP で作成されたに違いないので、接続文字列を変更する必要があるということでした。しかし、コンパイルされたリリース バージョンがすべて正しいデータを表示するのはなぜでしょうか? 接続文字列は正常である必要があります。
別のアプリで自分の dbfs を確認するためにDBF Viewer Plusをダウンロードしましたが、すべてのレコードを表示することもできません。
なぜこのように振る舞うのか分かりません。また、アプリをテストするたびにアプリのビルドを作成する必要があるため、かなり面倒です。
Windows Vista で開発しています。
お世話になりました!