2

pyodbc と 4D で動作するパラメータ化されたクエリを取得できません。これは、単純で基本的なコードの例です (mySQL データベースでの作業)。テーブル B には、制約のない 2 つの列があります。

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')

または、接続に失敗しましたが、a を発行するSELECTと動作します。私は何を間違っていますか。

4

1 に答える 1

0

() オブジェクトを作成する代わりに、マッピングを列挙しようとしましたか?

for k in KeyMap:
    cur2.execute("INSERT INTO B(Num,Text) VALUES(?,?);",k,KeyMap[k][0]);
于 2014-12-30T15:33:55.677 に答える