无法使用Python+PYODBC错误将SQL插入SQL Server数据库-无法绑定SQL参数



我似乎无法克服这个错误。代码工作正常,它将记录插入数据库,直到我为数字、promote_tag和routevdn添加了额外的参数。以前,当这些代码被硬编码到SQL中时,它工作得很好,但由于某种原因,现在我遇到了一个错误。

错误为:

Traceback (most recent call last):
File "C:/Users/User/PycharmProjects/Sean Project.py", line 48, in <module>
add_number()
File "C:/Users/User/PycharmProjects/Sean Project.py", line 42, in add_number
cursor.execute(update_query, pkey, number, numberTwo, promote_tag)
pyodbc.Error: ('HY004', '[HY004] [Microsoft][ODBC SQL Server Driver]Invalid SQL data type (0) (SQLBindParameter)')

代码:

def add_number():
number = input("Number to add: ")
producerNumber = input("Producer Number: ")
routevdn = "+1234567891"
now = datetime.now()
today = now.strftime("%m/%d")
promote_tag = producerNumber + "-Lead-" + today
query = """select max (pkey+1) from table_test"""
print(promote_tag)
print(routevdn)
print(number)
cursor.execute(query)
for row in cursor:
row_to_list = [elem for elem in row]
pkey = row_to_list
print(pkey)
query_calltype = """select max (pkey+1) from table2_test"""
cursor.execute(query_calltype)
for row in cursor:
row_to_list2 = [elem for elem in row]
pkey_calltype = row_to_list2
print(pkey_table2_test)
update_query = """INSERT INTO table_test
VALUES ((?), (?), (?), 'MY AGENCY NAME', '0', '0', '', (?), '0', '', '0', '', '',    '1', '', '0', '0', '', '', '', '1', '', '0', '', '', '', '',        '', '', '', '0', 'NULL');"""
update_queryTwo = """INSERT INTO table2_test
VALUES ((?), 'XX', '', (?), '', 'No', '', '', '', '', '0', (?), (?), '0', '', 'false', '', '0', '', '', '', '0', '0', '', '0', '', '', '0', 'NULL', 'NULL');"""
cursor.execute(update_query, pkey, number, number, promote_tag)
cursor.execute(update_queryTwo, pkey_calltype, routevdn, number, promote_tag)
conn.commit()

add_number()

传递给execute的必须是元组:

cursor.execute(update_query, (pkey, number, number, promote_tag))
cursor.execute(update_queryTwo, (pkey_calltype, routevdn, number, promote_tag))

顺便说一句,不要在查询中使用(?)。替换字符只是?

最新更新