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

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - 编程 » 使用 SQL 进行应用程序开发 » 应用程序中的事务 » 自动提交和手动提交模式

 

自动提交实现细节

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

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

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

    ADO.NET、ADO/OLE DB、ODBC、PHP 和 SQL Anywhere JDBC 驱动器应用程序控制来自客户端的提交行为。

  • 服务器端自动提交   应用程序关闭链接模式时,数据库服务器提交每个 SQL 语句的结果。对于 Sybase jConnect JDBC 驱动程序,此行为受 chained 数据库选项控制。

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

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

注意

不要将客户端和服务器端实现混合使用。在 SQL Anywhere ADO.NET、OLE DB、ODBC、PHP 或 JDBC 应用程序中,不应将设置 chained 选项与设置 autocommit 选项这两个操作组合在一起。