我使用cursor.execute语句遇到以下错误。
ProgrammingError :(“ 42000”,“ [42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]','附近的语法不正确。(102)(SQLExecDirectW)“)
但是,如果我复制并执行print语句中生成的SQL,它就可以工作。
qry = "INSERT INTO A([E]) VALUES(?) " , (dict_list[i].get('E'))
这是可行的:
cursor.execute("INSERT INTO A([E]) VALUES(?) " , (dict_list[i].get('E')))
出错:cursor.execute(qry)
请帮助。
我认为它与动态SQL有关,但是我无法弄清楚代码是如何执行的。
inserttable = 'INSERT INTO A('
valuestable = ''
values = ' VALUES('
for key in keys:
print(key)
if key == 'E':
# print(key)
inserttable = inserttable + '[' + key + '],'
valuestable = valuestable + ' dict_list[i].get(' + "'" + key + "'" + '),'
values = values + '?,'
#print(inserttable)
#print(valuestable)
qry = r'"""' + inserttable[:-1] + ') ' + values[:-1] + ') ;""" , (''' + valuestable[:-1] + ')'
qry = qry.replace('\n', ' ').replace('\r', '')
print(qry)
cursor.execute(qry)
ProgrammingError :(“ 42000”,“ [42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]','附近的语法不正确。(102)(SQLExecDirectW)“)