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

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

 

控制自动提交行为

控制应用程序的提交行为的方式取决于您使用的编程接口。自动提交的实现可以是客户端的或服务器端的,具体情况视接口而定。请参见自动提交实现细节

 ♦  控制自动提交模式 (ADO.NET)
  • 缺省情况下,ADO.NET 提供程序在自动提交模式下工作。若要使用显式事务,请使用 SAConnection.BeginTransaction 方法。请参见事务处理

 ♦  控制自动提交模式 (OLE DB)
  • 缺省情况下,OLE DB 提供程序在自动提交模式下工作。若要使用显式事务,请使用 ITransactionLocal::StartTransaction、ITransaction::Commit 和 ITransaction::Abort 方法。

 ♦  控制自动提交模式 (ODBC)
  • 缺省情况下,ODBC 在自动提交模式下工作。关闭自动提交的方式取决于您是在直接使用 ODBC 还是在使用应用程序开发工具。如果要直接对 ODBC 接口编程,则请设置 SQL_ATTR_AUTOCOMMIT 连接属性。

 ♦  控制自动提交模式 (JDBC)
  • 缺省情况下,JDBC 在自动提交模式下工作。若要关闭自动提交,请使用连接对象的 setAutoCommit 方法:

    conn.setAutoCommit( false );
 ♦  控制自动提交模式(嵌入式 SQL)
  • 缺省情况下,嵌入式 SQL 应用程序在手工提交模式下工作。若要启用自动提交,请使用类似如下的语句将 chained 数据库选项(服务器端选项)设置为 Off:

    SET OPTION chained='Off';
 ♦  控制自动提交模式 (Open Client)
  • 缺省情况下,通过 Open Client 进行的连接在自动提交模式下工作。您可以更改此行为,方法是使用类似如下的语句在应用程序中将 chained 数据库选项(服务器端选项)设置为 On:

    SET OPTION chained='On';
 ♦  控制自动提交模式 (PHP)
  • 缺省情况下,PHP 在自动提交模式下工作。若要关闭自动提交,请使用 sqlanywhere_set_option 函数:

    $result = sasql_set_option( $conn, "auto_commit", "Off" );

请参见sasql_set_option

 ♦  控制自动提交模式(在服务器上)
  • 缺省情况下,数据库服务器在手工提交模式下工作。若要启用自动提交,请使用类似如下的语句将 chained 数据库选项(服务器端选项)设置为 Off:

    SET OPTION chained='Off';

    如果使用的是在客户端上控制提交的接口,则设置 chained 数据库选项(服务器端选项)会影响应用程序的性能和/或行为。不建议设置服务器的链接模式。

请参见设置自动提交或手工提交模式