Я пытаюсь добавить данные в базу данных (хорошо, MS Access), используя python с pypyodbc. Я проверил свой оператор вставки в MS Access как запрос, и он работает. Проблема в том, что когда я запускаю его внутри своей программы, возникает следующая ошибка:
pypyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.')
Мой оператор вставки выглядит следующим образом:
INSERT INTO Database (columnAText,columnBText,columnText,columnDTime,columnEText,columnFText,columnGNumber) VALUES ('a','b','c','00:00:17','e','f','100')
Обратите внимание, что заголовки столбцов включают их тип как часть их имени, так как это тестовая таблица.
Программа работает так:
Здесь больше столбцов, чем в операторе вставки, потому что для идентификатора есть столбец автоинкремента. Это означает, что столбцы должны быть определены в операторе вставки, чтобы отправлять данные в правильные столбцы. Поэтому, если в строке есть пустая запись, этот столбец пропускается из оператора вставки.
Я не вижу, что не так с оператором вставки, тем более что он работает непосредственно в MS Access.
Я использую ActivePython33 с pypyodbc, MS Access 2010, на компьютере с Windows 7.