Zend适配器事务回滚失败MSSQL

问题描述 投票:1回答:1

我有这个奇怪的错误,我使用MSSQL 2008 R2和ZendFw 1.12


首先。回滚没有在try内失败。

   // Zend_DB_Table Adapter
   $adapter = Zend_Db_Table::getDefaultAdapter();

   // Start Transaction
   $adapter->beginTransaction();

   try {
          $adapter->rollBack();
          return (int) 1;
   } catch (Exception $e) {
          throw new Api_Exception($e->getMessage(), $e->getCode(), $e);
   }

但是..回滚在catch中失败。.>

是的,我故意在尝试以下波纹管时产生错误,以使其进入陷阱。.>>

   // Zend_DB_Table Adapter
   $adapter = Zend_Db_Table::getDefaultAdapter();

   // Start Transaction
   $adapter->beginTransaction();

   try {
          return (int) A;
   } catch (Exception $e) {
          $adapter->rollBack();
          throw new Api_Exception($e->getMessage(), $e->getCode(), $e);
   }

它返回.. Zend_Db_Adapter_Sqlsrv_Exception: A transaction must be started by calling sqlsrv_begin_transaction before calling sqlsrv_commit or sqlsrv_rollback.

请提供任何线索?

[我有这个奇怪的错误,我使用MSSQL 2008 R2和ZendFw 1.12,首先。.回滚没有在尝试中失败。.// Zend_DB_Table Adapter $ adapter = Zend_Db_Table :: getDefaultAdapter(); //开始...

嗨,去看看这个链接Rollback in SQL

您可以使用安全简单的代码来100%运行(运行所有查询行),也可以不运行任何代码。>

|query 1| = like insert into or select or ...
|count of lines| = number off query

DECLARE @rowcount int  set @rowcount = 0 ; 
BEGIN TRANSACTION [Tran1]
BEGIN TRY 
 <Query 1> ; set @rowcount = (@rowcount + @@ROWCOUNT); 
 <Query 2> ; set @rowcount = (@rowcount + @@ROWCOUNT); 
...
IF @rowcount =  <count of lines>
  COMMIT TRANSACTION[Tran1]
ELSE
  ROLLBACK TRANSACTION[Tran1]
END TRY
  BEGIN CATCH
  ROLLBACK TRANSACTION[Tran1]
END CATCH

例如,此代码运行2插入行查询中,但要么运行所有他,要么不运行任何内容并回滚

DECLARE @rowcount int  set @rowcount = 0 ; 
BEGIN TRANSACTION [Tran1]
BEGIN TRY 
 insert into [database].[dbo].[tbl1] (fld1) values('1') ;
    set @rowcount = (@rowcount + @@ROWCOUNT); 
 insert into [database].[dbo].[tbl2] (fld1) values('2') ;
    set @rowcount = (@rowcount + @@ROWCOUNT); 

IF @rowcount =  2
  COMMIT TRANSACTION[Tran1]
ELSE
  ROLLBACK TRANSACTION[Tran1]
END TRY
  BEGIN CATCH
  ROLLBACK TRANSACTION[Tran1]
END CATCH
        
zend-framework rollback
1个回答
0
投票

嗨,去看看这个链接Rollback in SQL

© www.soinside.com 2019 - 2024. All rights reserved.