ОШИБКИ: «синтаксическая ошибка в INSERT INTO...» на ADO Recordset.Update

Переводы статьи Переводы статьи
Код статьи: 189220 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Проблема

После вызова метода AddNew, а затем вызовите метод Update объекта Набор записей, возвращается следующее сообщение об ошибке:
Поставщик Microsoft OLE DB для драйверов ODBC ошибка «80040e21»
[Microsoft][Драйвер ODBC Microsoft Access 97] Синтаксическая ошибка в INSERT INTO оператор.
С помощью драйвера ODBC Microsoft Access version4.00.4202.00 или более поздней версии, сообщение об ошибке:
Ошибка выполнения '-2147467259(80004005) ":
[Microsoft][Драйвер Microsoft Access ODBC]Синтаксическая ошибка в инструкции INSERT INTO.

Причина

Эта ошибка возникает, если выполняются следующие условия:
  • CursorType — adOpenForwardOnly (0).
  • CursorLocation — adUseServer.
  • Обновляемое поле имеет место в поле имя.
  • При использовании драйвера Microsoft Access ODBC.
Вызов методов AddNew и обновления на стороне сервера, только вперед курсор, является недопустимой операции. Компенсирует объектов данных ActiveX (ADO) Этот код содержит ошибку, создавая инструкции INSERT для выполнения операции. Когда ADO создает инструкции INSERT, он не разделяют поле имена. Таким образом имена полей, содержащих пробел ошибку синтаксиса.

Например допустимая инструкция INSERT будет выглядеть следующим образом:
   INSERT INTO Table ([field with space]) Values(value)
				
ADO создает следующий код:
   INSERT INTO Table (field with space) Values(value)
				

Решение

Ниже приведены некоторые возможные способы решения проблемы.
  • Не используйте пробелы в именах полей в базе данных.
  • С помощью CursorLocation adUseClient (3).
  • Не используйте CursorType adOpenForwardOnly (0), например adOpenKeyset (1), adOpenDynamic (2) или adOpenStatic (3).
  • Выполнить операцию, создавая свои собственные инструкции INSERT с разделители на имена полей вместо AddNew и обновления методы.
  • Используйте поставщик Microsoft OLE DB для Jet версии 3.51 и 4.0 вместо поставщика Microsoft OLE DB для ODBC и драйвер ODBC для Microsoft Access.

Статус

Корпорация Майкрософт подтверждает это будет ошибкой продуктов Майкрософт, перечисленных в в начале этой статьи.

Свойства

Код статьи: 189220 - Последний отзыв: 4 июня 2011 г. - Revision: 6.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.7
Ключевые слова: 
kbbug kbdatabase kbdriver kbjet kbmt KB189220 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:189220

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com