Sybase SQL Anywhere:使用CodeIgniter进行回滚事务

时间:2018-11-06 14:10:47

标签: php codeigniter sybase sqlanywhere

我正在使用SQL Anywhere运行CodeIgniter 2(我有一个自定义类来处理与SAP DLL的连接)。

我对包含许多查询的事务有疑问。 其中之一是引发错误(尝试更新表时由触发器返回):在这种情况下,我希望在处理结束时回滚事务,如下所示。

setup(ext_modules=cythonize("module1.pyx", build_dir="build"), script_args=['build_ext'], 
                                            options={'build_ext':{'inplace':True}})

我尝试更改以下选项:

  • 链接=>关闭
  • continue_after_raiserror =>开启
  • on_tsql_error =>继续

奇怪的是,我正在记录查询:在Interactive SQL中手动执行查询效果很好! 似乎引发的错误使事务中断。

有人可以帮我吗?

谢谢

1 个答案:

答案 0 :(得分:0)

最后,我找到了解决方案:我们只需要使用SAP PHP的DLL(http://dcx.sap.com/index.html#sa160/en/dbprogramming/php-support.html)提供的某些功能。

  • 使用:

    开始交易

    sasql_set_option($ this-> conn_id,'auto_commit',0);

  • 最后,如果您需要提交:

    sasql_commit($ conn_id);

  • ,如果需要回滚:

    sasql_rollback($ conn_id); sasql_set_option($ conn_id,'auto_commit',1);