【发布时间】:2011-12-14 16:27:42
【问题描述】:
无法使用 python informixdb 找到正确的 INSERT 查询语法
- python 2.6.6
- python INFORMIXDB 2.5 版
- 驱动程序名称:IBM Informix-ESQL
- 驱动版本:3.50.FC8
- 关于 debian 压缩
这是文档 - http://informixdb.sourceforge.net/manual.html#binding-parameters
>>> cursor.execute('INSERT INTO names VALUES(:first,:last,:age)',
... dict(first='some', last='body', age=56) )
所以我试了一下
cursor.execute('INSERT INTO transit_auftrag_i VALUES(:auftragskey,:transitkunde,:status)',dict(auftragskey='erII',transitkunde='DMIeLE',status='OK') )
这就是我在这个例子中得到的
<class '_informixdb.ProgrammingError'>
('PREPARE', -236, [{'message': 'Insert value list does not match column list', 'sqlstate': '21S01'}])
<class '_informixdb.ProgrammingError'>
('DESCRIBE', -410, [{'message': 'Syntax error or access violation in PREPARE or EXECUTE IMMEDIATE', 'sqlstate': '37000'}])
Segmentation fault
任何提示我可以尝试吗?
更新:informix 11.50.xC8
更新
到目前为止,谢谢。我现在执行以下查询,它运行时没有错误,但也没有来自游标的消息,也没有插入任何内容。如果您有建议,那就太好了。
cursor.execute("INSERT INTO transit_auftrag_i (auftragskey,transitkunde,status) VALUES (:a,:b,:c)", dict(a='A',b='B',c='C') )
【问题讨论】:
-
看来我明白了。我需要设置 conn.autocommit = True