2016-12-01 27 views
1

Python経由でpyodbcを使用してAccessデータベースにSQL挿入を取得するのに苦労しています。それぞれの試みは「無効な構文エラー」をスローします。Accessとpyodbcを使用したINSERT文の構文エラー

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) 
関連する問題