不使用时出现动态查询错误游标.execu

2024-09-23 06:27:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到以下错误使用游标.执行声明。你知道吗

ProgrammingError: ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near ','. (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 Driver][SQL Server]Incorrect syntax near ','. (102) (SQLExecDirectW)")


Tags: keysqlgetservercursordictlistinsert