在ecpg中解除分配的良好顺序

问题描述

在pgc代码中,我执行以下一种操作:

exec sql begin work;
exec sql prepare my_rqt from :rqt_insert  ;   
exec sql execute my_rqt using :foo,:bar ;
if ( sqlca.sqlcode == 0 ){
    exec sql deallocate prepare my_rqt ;
    exec sql commit ;
} else {
    exec sql deallocate prepare my_rqt ;
    exec sql rollback ;
}

插入工作时,一切都很好,但是在另一种情况下,我在'deallocate'语句中遇到错误

sqlca.sqlstate:26000:第XX行上的无效语句“ my_rqt”

如果在回滚之后进行取消分配,则不会收到此消息。 我在任何文档中都找不到此示例代码

感谢您提供正确的帮助,以帮助您完成这些任务。

解决方法

一旦遇到错误,事务将中止,并且在回滚之前您将无法执行任何操作。