在 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,我不会收到此消息。
我在任何文档中都找不到任何示例代码。
感谢您就正确顺序执行此类操作提供的任何帮助。
一旦出现错误,事务将中止,在回滚之前您将无法执行任何操作。
在 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,我不会收到此消息。 我在任何文档中都找不到任何示例代码。
感谢您就正确顺序执行此类操作提供的任何帮助。
一旦出现错误,事务将中止,在回滚之前您将无法执行任何操作。