私は本当にイライラする問題を抱えています
sqlite3.Connectionオブジェクトへのカーソルを受け取り、データベースを変更する関数があります
私のコードは次のようなものです:
#DOES NOT WORK
def update(dbc, tableName, value, value2):
dbc.execute("update ? set MyValue = ? where Something = ?;",\
[tableName, value, value2])
#WORKS
def update2(dbc, tableName value, value2):
dbc.execute("update {0} set MyValue = {1} where Something = {2};".format(
tableName, value, value2))
db = sqlite3.connect('data.db')
c = db.cursor()
c.execute("begin;")
update(c,"Something","Something Else") #FAILS
update2(c,"Something","Something Else") #OK
エラーが発生します:
sqlite3.OperationalError:「?」の近く:構文エラー
最初のexecute( "begin;")ステートメントはよくわからないのでコメントアウトしてみましたが、すべての入力をコミットする代わりに、他の部分でコードが劇的に高速化されることはわかっています。なぜこれが起こっているのか誰かが手がかりを持っていますか?