使用Informix C ++接口,第一个查询很好,但是第二个查询会产生此错误

MI_LIB_USAGE: XIX000:-7520:Argument (client library error) is NULL.


我的密码

// connection okay and open
ITQuery query(conn);
string qtext;
qtext = "SELECT * FROM transit_kunde_s WHERE erledigt='N'";
okay = query.ExecForIteration(qtext.c_str());
ITRow *row;

while (row = query.NextRow()) {
     // do stuff

     // now update that row
     qtext = "UPDATE transit_kunde_s SET erledigt='Y' WHERE transitkunde='"+ts+"'";
     code = query.ExecForStatus(qtext.c_str());
     // ERROR
}


有什么想法吗?

最佳答案

解决方案是使用一个新的查询对象:

ITQuery query_up(conn);
code = query_up.ExecForStatus(qtext.c_str());


编辑:如果要启用事务,则必须使用新连接!参见[http://stackoverflow.com/questions/5095519/how-to-use-transactions-in-informix-csdk]

关于c++ - Informix OIC++:查询产生错误MI_LIB_USAGE/参数(客户端库错误)为NULL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5079639/

10-11 18:31