我无法使用 pyodbc 和 4D 获得参数化查询。这是一个简单而基本的代码示例(在 mySQL 数据库上工作)。表 B 有两列,没有任何约束。
import pyodbc
con2 = pyodbc.connect('dsn=odbc_source');
cur2 = con2.cursor();
KeyMap = {
1: ('Aaaahaa',datetime.date(1990,1,1)),
2: ('Bcdefgh',datetime.date(1990,2,1)),
3: ("Aaaah'aa",datetime.date(1990,3,1))
};
for k in KeyMap:
v = (k,KeyMap[k][0]);
cur2.execute("INSERT INTO B(Num,Text) VALUES(?,?);",v);
我总是收到此错误消息:
Traceback (most recent call last):
File "D:\jlandercy\src\python\cripi\transfert\000_TestInsertParam.py", line 33, in <module>
cur2.execute("INSERT INTO B(Num,Text) VALUES(?,?);",v);
pyodbc.ProgrammingError: ('The SQL contains 1 parameter markers, but 2 parameters were supplied', 'HY000')
或者,连接失败,但如果我发出SELECT
它,它可以工作。我究竟做错了什么。