首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ODP.NET -禁用自动提交

ODP.NET -禁用自动提交
EN

Stack Overflow用户
提问于 2015-10-15 07:52:35
回答 1查看 4.4K关注 0票数 0

在使用ODP.NET时,有简单的方法禁用自动提交吗?我希望使用SET TRANSACTION命令启动事务,而不是使用Connection.BeginTransaction或TransactionScope。此外,我希望任何DML启动事务(如果尚未启动),但在发出提交命令之前不要提交更改。我知道其他Oracle (JDBC或Devart)支持这一点,但我希望在ODP.NET中实现同样的行为。

我还发现,在托管版本的ODP.NET中,可能有私有字段控制它,但它隐藏在物理连接的实现中,这很难通过OracleConnection实例访问。在非托管版本中,此设置似乎也在Oracle.DataAccess.dll程序集之外。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-15 22:06:56

禁用ODP.NET自动提交的唯一方法是使用BeginTransaction/新TransactionScope。

您可以向UI中的用户表明,默认情况下自动提交是打开的,如果通过单击工具栏按钮等,用户可以关闭自动提交,此时您可以使用属性或选项页中的一些选项调用Begin事务。

这正是我们在查询窗口中使用Oracle开发工具所做的事情。

另一个可能的问题是匿名PL/SQL,它可以同时发送一个SQL语句块。

至于"SET TRANSACTION",我不确定如果您已经执行了"BeginTransaction“,它是否会产生效果,但是如果是这样的话,您可以记录不支持这个命令(如果是这样的话,我们必须在查询窗口中这样做)。

如果您希望在将来的某个时候使用此特性增强ODP.NET,您可能希望在ODP.NET功能请求页面上提交一个请求:

http://apex.oracle.com/pls/apex/f?p=18357:46

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33142872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档