Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 编程 » 使用 SQL Anywhere 编程简介 » 在应用程序中使用 SQL » 在应用程序中控制事务 » 设置自动提交或手工提交模式

 

自动提交实现细节

根据您使用的接口以及控制自动提交行为的方式,自动提交模式的行为会稍有不同。

实现自动提交模式可以采用以下两种方式之一:

  • 客户端自动提交   当应用程序使用自动提交时,客户端库在每一个 SQL 语句执行之后发送 COMMIT 语句。

    ADO.NET、ADO/OLE DB、ODBC 和 PHP 应用程序从客户端控制提交行为。

  • 服务器端自动提交   应用程序关闭链接模式时,数据库服务器提交每个 SQL 语句的结果。此行为在使用 JDBC 的情况下由 chained 数据库选项隐式控制。

    嵌入式 SQL、JDBC 和 Open Client 应用程序操纵服务器端提交行为(例如,这些应用程序设置 chained 选项)。

对于复合语句(如存储过程或触发器),在客户端和服务器端自动提交之间有一些区别。从客户端看,存储过程是单一语句,因此自动提交将在整个过程执行之后发送单一提交语句。从数据库服务器的角度来看,存储过程可以由许多 SQL 语句构成,因此服务器端自动提交将提交该过程内的每个 SQL 语句的结果。

不要混合使用客户端和服务器端实现

在 ADO.NET、ADO/OLE DB、ODBC 或 PHP 应用程序中,不要将设置 chained 选项与设置 autocommit 选项这两个操作混合使用。