Поле слишком маленькое, чтобы принять объем данных, которые вы пытались добавить - PullRequest
1 голос
/ 23 июня 2011

Это странно, потому что я не вставляю данные, я извлекаю данные с помощью запроса.

Я пытаюсь запустить

SELECT DISTINCT description FROM products;

, который выдает ошибку "поле слишком маленькое, чтобы принять объем данных, которые вы пытались добавить. ".

Однако выполнение следующего не приводит к ошибке:

SELECT description FROM products;

Так что я запутался какк тому, что проблема будет.

Я использую OleDbDataReader и извлекаю данные из файла базы данных mdb.

1 Ответ

2 голосов
/ 23 июня 2011

Это может быть связано с: http://support.microsoft.com/kb/896950/us

Эта проблема возникает из-за того, что если для свойства запроса UniqueValues ​​задано значение Да, в результирующий оператор SQL добавляется ключевое слово DISTINCT.Ключевое слово DISTINCT направляет Access для сравнения записей.Когда Access выполняет сравнение между двумя Memo-полями, Access обрабатывает поля как текстовые поля с ограничением в 255 символов.Иногда данные поля Memo, длина которых превышает 255 символов, генерируют сообщение об ошибке, упомянутое в разделе «Проблема».Иногда из поля Memo возвращается только 255 символов.

Обходной путь:

Чтобы обойти эту проблему, измените исходный запрос, удалив поле Memo.Затем создайте второй запрос, основанный как на таблице, так и на исходном запросе.Этот новый запрос использует все поля из исходного запроса, а этот новый запрос использует поле Memo из таблицы.Когда вы запускаете второй запрос, первый запрос выполняется.Затем эти данные используются для запуска второго запроса.Это поведение возвращает данные поля Memo на основе возвращенных данных первого запроса.

...