System.Data.OleDb.OleDbException: определено слишком много полей - PullRequest
2 голосов
/ 18 апреля 2009

Я работаю над созданием приложения .NET WinForms для замены ряда форм в базе данных Microsoft Access (вставьте здесь стон). Чтобы закончить начальную версию, я пытаюсь использовать существующие запросы, а не копаться в модели данных и ее очевидных проблемах проектирования.

Я вызываю запросы с использованием объекта OleDbCommand и отношусь к ним как к хранимым процедурам. Это прекрасно работает на рабочих станциях, которые мы использовали для тестирования приложения в нашем офисе, но завершается с ошибкой «System.Data.OleDb.OleDbException: слишком много полей определено» при запуске на компьютере клиента. В обеих средах работает MS Access 2003, поэтому причина ошибки на клиентском компьютере не очевидна.

Я нашел сообщение в http://www.eggheadcafe.com/conversation.aspx?messageid=33475714&threadid=33453796, в котором говорится, что это может произойти, если число столбцов превышает 127. У пары таблиц, используемых в запросах, больше этого числа столбцов (почти полное отсутствие нормализация, я знаю). Я считаю, что это причина, но не могу объяснить, почему ошибка не происходит в нашем офисе. Любые предложения по решению этой проблемы разделения доступа к данным на несколько запросов?

1 Ответ

1 голос
/ 19 апреля 2009

Я не понимаю, почему это может происходить.

Однако это может быть связано с компонентами MDAC, установленными на вашем компьютере против клиентского компьютера (т.е. компоненты MDAC включают драйвер oledb JET).

Это может помочь.

...