【发布时间】:2018-11-08 03:35:00
【问题描述】:
我的 SQL 数据库中有 5 个字符字段,但我无法在表中插入行。我在Access数据库中做的时候没有问题。
这是我的 Insert 语句的代码和我得到的错误:
f1=hostname; f2=p.Caption; f3=p.Version; f4="1998-10-01";f5="2018-11-01"
print(f1,'--',f2,'--',f3,'--',f4,'--',f5)
sql = "INSERT INTO software VALUES (%s, %s, %s, %s, %s)"
cursor.execute(sql, {f1,f2,f3,f4,f5})
错误信息:
cursor.execute(sql, (f1,f2,f3,f4,f5)) pyodbc.ProgrammingError: ('The SQL 包含 0 个参数标记,但提供了 5 个参数', 'HY000')
【问题讨论】:
-
你的表有多少列?
-
一个自动生成标识列,以及其他 5 个列。
-
当我使用以下代码时: w = wmi.WMI() for p in w.Win32_Product(): f1=hostname; f2=p.标题; f3=p.版本; f4="1998-10-01";f5="2018-11-01" sql_command = """INSERT INTO software (computer, software, version, date_installed, date_checked) VALUES (f1, f2, f3, f4, f5) ;""" cursor.execute(sql_command) conn.commit() 我得到 [SQL Server]Invalid column name 'f1'。 (207) (SQLExecDirectW) 错误