[ Index ]
 

Code source de vtiger CRM 5.0.2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/adodb/drivers/ -> adodb-mysqlt.inc.php (source)

   1  <?php
   2  
   3  /*
   4  V4.90 8 June 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
   5    Released under both BSD license and Lesser GPL library license. 
   6    Whenever there is any discrepancy between the two licenses, 
   7    the BSD license will take precedence.
   8    Set tabs to 8.
   9    
  10    MySQL code that supports transactions. For MySQL 3.23 or later.
  11    Code from James Poon <jpoon88@yahoo.com>
  12    
  13    Requires mysql client. Works on Windows and Unix.
  14  */
  15  
  16  // security - hide paths
  17  if (!defined('ADODB_DIR')) die();
  18  
  19  include_once(ADODB_DIR."/drivers/adodb-mysql.inc.php");
  20  
  21  
  22  class ADODB_mysqlt extends ADODB_mysql {
  23      var $databaseType = 'mysqlt';
  24      var $ansiOuter = true; // for Version 3.23.17 or later
  25      var $hasTransactions = true;
  26      var $autoRollback = true; // apparently mysql does not autorollback properly 
  27      
  28  	function ADODB_mysqlt() 
  29      {            
  30      global $ADODB_EXTENSION; if ($ADODB_EXTENSION) $this->rsPrefix .= 'ext_';
  31      }
  32      
  33      /* set transaction mode
  34      
  35      SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL
  36  { READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE }
  37  
  38      */
  39  	function SetTransactionMode( $transaction_mode ) 
  40      {
  41          $this->_transmode  = $transaction_mode;
  42          if (empty($transaction_mode)) {
  43              $this->Execute('SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ');
  44              return;
  45          }
  46          if (!stristr($transaction_mode,'isolation')) $transaction_mode = 'ISOLATION LEVEL '.$transaction_mode;
  47          $this->Execute("SET SESSION TRANSACTION ".$transaction_mode);
  48      }
  49      
  50  	function BeginTrans()
  51      {      
  52          if ($this->transOff) return true;
  53          $this->transCnt += 1;
  54          $this->Execute('SET AUTOCOMMIT=0');
  55          $this->Execute('BEGIN');
  56          return true;
  57      }
  58      
  59  	function CommitTrans($ok=true) 
  60      {
  61          if ($this->transOff) return true; 
  62          if (!$ok) return $this->RollbackTrans();
  63          
  64          if ($this->transCnt) $this->transCnt -= 1;
  65          $this->Execute('COMMIT');
  66          $this->Execute('SET AUTOCOMMIT=1');
  67          return true;
  68      }
  69      
  70  	function RollbackTrans()
  71      {
  72          if ($this->transOff) return true;
  73          if ($this->transCnt) $this->transCnt -= 1;
  74          $this->Execute('ROLLBACK');
  75          $this->Execute('SET AUTOCOMMIT=1');
  76          return true;
  77      }
  78      
  79  	function RowLock($tables,$where='',$flds='1 as adodb_ignore') 
  80      {
  81          if ($this->transCnt==0) $this->BeginTrans();
  82          if ($where) $where = ' where '.$where;
  83          $rs =& $this->Execute("select $flds from $tables $where for update");
  84          return !empty($rs); 
  85      }
  86      
  87  }
  88  
  89  class ADORecordSet_mysqlt extends ADORecordSet_mysql{    
  90      var $databaseType = "mysqlt";
  91      
  92  	function ADORecordSet_mysqlt($queryID,$mode=false) 
  93      {
  94          if ($mode === false) { 
  95              global $ADODB_FETCH_MODE;
  96              $mode = $ADODB_FETCH_MODE;
  97          }
  98          
  99          switch ($mode)
 100          {
 101          case ADODB_FETCH_NUM: $this->fetchMode = MYSQL_NUM; break;
 102          case ADODB_FETCH_ASSOC:$this->fetchMode = MYSQL_ASSOC; break;
 103          
 104          case ADODB_FETCH_DEFAULT:
 105          case ADODB_FETCH_BOTH:
 106          default: $this->fetchMode = MYSQL_BOTH; break;
 107          }
 108      
 109          $this->adodbFetchMode = $mode;
 110          $this->ADORecordSet($queryID);    
 111      }
 112      
 113  	function MoveNext()
 114      {
 115          if (@$this->fields = mysql_fetch_array($this->_queryID,$this->fetchMode)) {
 116              $this->_currentRow += 1;
 117              return true;
 118          }
 119          if (!$this->EOF) {
 120              $this->_currentRow += 1;
 121              $this->EOF = true;
 122          }
 123          return false;
 124      }
 125  }
 126  
 127  class ADORecordSet_ext_mysqlt extends ADORecordSet_mysqlt {    
 128  
 129  	function ADORecordSet_ext_mysqlt($queryID,$mode=false) 
 130      {
 131          if ($mode === false) { 
 132              global $ADODB_FETCH_MODE;
 133              $mode = $ADODB_FETCH_MODE;
 134          }
 135          switch ($mode)
 136          {
 137          case ADODB_FETCH_NUM: $this->fetchMode = MYSQL_NUM; break;
 138          case ADODB_FETCH_ASSOC:$this->fetchMode = MYSQL_ASSOC; break;
 139          
 140          case ADODB_FETCH_DEFAULT:
 141          case ADODB_FETCH_BOTH:
 142          default: 
 143              $this->fetchMode = MYSQL_BOTH; break;
 144          }
 145          $this->adodbFetchMode = $mode;
 146          $this->ADORecordSet($queryID);    
 147      }
 148      
 149  	function MoveNext()
 150      {
 151          return adodb_movenext($this);
 152      }
 153  }
 154  
 155  ?>


Généré le : Sun Feb 25 10:22:19 2007 par Balluche grâce à PHPXref 0.7