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

good order for deallocating in 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 ;
}

insert 工作时,一切都很好,但是,在其他情况下,我在 'deallocate' 语句上遇到错误:

sqlca.sqlstate : 26000 : invalid statement "my_rqt" on line xx

如果我在 rollback 之后执行 deallocate,我不会收到此消息。 我在任何文档中都找不到任何示例代码。

感谢您就正确顺序执行此类操作提供的任何帮助。

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