2

私は、.NET WinForms アプリケーションを構築して、Microsoft Access データベースの一連のフォームを置き換える作業を行っています (ここに集合的なうめき声を挿入)。初期バージョンを完成させるために、データ モデルとその明らかな設計上の問題を掘り下げるのではなく、既存のクエリを使用しようとしています。

OleDbCommand オブジェクトを使用してクエリを呼び出し、ストアド プロシージャのように扱っています。これは、オフィスでアプリケーションをテストするために使用したワークステーションでは正常に機能しますが、クライアントのコンピューターで実行すると、「System.Data.OleDb.OleDbException: 定義されたフィールドが多すぎます」というエラーで失敗します。どちらの環境も MS Access 2003 を実行しているため、クライアントのコンピューターでのエラーの原因は明らかではありません。

http://www.eggheadcafe.com/conversation.aspx?messageid=33475714&threadid=33453796で、列数が 127 を超えるとこの問題が発生する可能性があるという投稿を見つけました。クエリで使用されているいくつかのテーブルには、この列数 (正規化がほぼ完全に欠如していることはわかっています)。これが原因だと思いますが、当事務所でエラーが発生しない理由が説明できません。データアクセスを複数のクエリに分割するという短所を解決するための提案はありますか?

4

1 に答える 1

1

なぜこれが発生するのか、私には理解できません。

ただし、これは、オフィスとクライアント コンピューターにインストールされている MDAC コンポーネントに関連している可能性があります (つまり、MDAC コンポーネントには JET oledb ドライバーが含まれています)。

これは役立つかもしれません。

于 2009-04-19T06:50:36.043 に答える