2016-12-01 4 views
1

Мне тяжело получить SQL-вставку в базу данных Access с помощью pyodbc через Python. Каждая попытка выдает «недопустимую синтаксическую ошибку».Ошибка синтаксиса в инструкции INSERT с Access и pyodbc

import pyodbc 

ney = 'data1' 
soy = 'data2' 

MDBA = 'C:/db/dbBase.mdb'; DRVA = '{Microsoft Access Driver (*.mdb)}'; PWDA = 'pw' 

# connect to db 
cona = pyodbc.connect('DRIVER={};DBQ={};PWD={}'.format(DRVA,MDBA,PWDA)) 
cura = cona.cursor() 
SQL = ("""insert into [db1](col1, col2) values ('ney', 'soy')""") 
#SQL = ("insert into db1(col1, col2values (?, ?)", ney, soy) 

cura.execute(SQL) 
cona.commit() 

Я был в состоянии сделать инструкцию SELECT, так что будет правильным синтаксисом для INSERT?

+0

Закомментированные из SQL является синтаксической ошибкой, не закрывающей скобки или пространства перед 'values'. – Parfait

ответ

1

Я только что скопировал и ввел ваш код в IDLE, и это не показало мне ошибку. Однако он также вставил в таблицу буквальные значения «ney» и «soy». Для того, чтобы получить значения от этих переменных, которые необходимо использовать параметризованный запрос, например:

sql = "insert into [db1] (col1, col2) values (?, ?)" 
params = (ney, soy) # tuple containing parameter values 
cura.execute(sql, params) 
Смежные вопросы