1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-31 14:00:31 +02:00

Fixed various transaction related issues and changed mssql-odbc name to ... mssql-odbc, hopefully this hasn't been (and won't be) responsible for any problems ...

git-svn-id: file:///svn/phpbb/trunk@2269 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Paul S. Owen
2002-03-05 02:19:38 +00:00
parent be2532588c
commit 28b38f0547
5 changed files with 99 additions and 29 deletions

View File

@@ -22,7 +22,7 @@
if(!defined("SQL_LAYER"))
{
define("SQL_LAYER","mssql");
define("SQL_LAYER","mssql-odbc");
class sql_db
{
@@ -93,7 +93,7 @@ class sql_db
{
$this->num_queries++;
if( $transaction == BEGIN_TRANSACTION )
if( $transaction == BEGIN_TRANSACTION && !$this->in_transaction )
{
if( !odbc_autocommit($this->db_connect_id, false) )
{
@@ -190,9 +190,15 @@ class sql_db
if( $transaction == END_TRANSACTION && $this->in_transaction )
{
odbc_commit($this->db_connect_id);
odbc_autocommit($this->db_connect_id, true);
$this->in_transaction = FALSE;
if ( !odbc_commit($this->db_connect_id) )
{
odbc_rollback($this->db_connect_id);
odbc_autocommit($this->db_connect_id, true);
return false;
}
odbc_autocommit($this->db_connect_id, true);
}
odbc_free_result($this->result);
@@ -201,7 +207,20 @@ class sql_db
}
else
{
return false;
if( $transaction == END_TRANSACTION && $this->in_transaction )
{
$this->in_transaction = FALSE;
if ( !@odbc_commit($this->db_connect_id) )
{
odbc_rollback($this->db_connect_id);
odbc_autocommit($this->db_connect_id, true);
return false;
}
odbc_autocommit($this->db_connect_id, true);
}
return true;
}
}