2016-12-12 12 views
1

Microsoft Access не может обновлять большие поля Memo (длинный текст) в таблице SQLite, связанной с ODBC. Предел составляет от 2300 до 5152 символов. Это может быть запрос обновления, DAO или ADO rs.Edit или ручная копия-паста с использованием Ctrl-C/Ctrl-V + mouse непосредственно в связанную таблицу - это не имеет значения.Microsoft Access не может обновлять большие поля Memo (Long Text) в связанной таблице SQLite3 ODBC: ошибка последовательности (# -1)

Сообщения об ошибках:

запроса Update или вручную копипаст:

ODBC-update on a linked table 'Adobe_AdditionalMetadata' failed. 
sequence error (#-1) 

DAO, VBA на rs.Edit линии:

Run-time error '3027': 
Cannot update. Database or object is read-only. 

ADO, VBA на Rs. Линия обновления:

Run-time error '-2147217887 (80040e21)': 
ODBC-update on a linked table 'Adobe_AdditionalMetadata' failed. 

Ins talled водитель:
http://www.ch-werner.de/sqliteodbc/ (SQLite3 ODBC Driver)
доступа связаны свойства поля: Long Text
оригинальные SQLite свойства поля: TEXT NOT NULL DEFAULT ''
(Access см почти все поля, как Memo)
Это «xmp» в таблице «Adobe_AdditionalMetadata» в файле Adobe Lightroom «Lightroom Catalog.lrcat».

Меньшие поля Memo могут быть легко обновлены.

+0

Не знаю, подходит ли это в вашем случае, но я, кажется, избегал проблемы, включив «Нет WCHAR» в свойствах DSN, а затем удаляя и воссоздавая связанную таблицу. –

+0

Спасибо, это было так просто ... Обновление с помощью Update Query, copy-paste и ADO VBA работает прямо сейчас, DAO VBA отображает все те же сообщения об ошибках. Не могли бы вы объяснить, почему установить No WCHAR? – darekk

+0

Интересно. Для меня работает обновление 'DAO.Recordset' (' rs.Edit' и 'rs.Update'). –

ответ

1

Одним из возможных способов заключается в активировать опцию «No WChar» для ODBC DSN:

DSN.png

(Существующие ODBC связанных таблиц в Access, возможно, придется повторно создан для того, чтобы изменения вступили в силу .)

+0

Это работает, за исключением DAO. – darekk

+0

> Существующие связанные таблицы ODBC в Access, возможно, придется воссоздать - все таблицы, а не только с полем Memo для обновления, поскольку Access завершает работу по некоторым запросам, когда воссоздана только одна таблица. Похоже, какая-то несогласованность. – darekk

 Смежные вопросы

  • Нет связанных вопросов^_^