Ignore:
Timestamp:
06/29/07 15:17:46 (17 years ago)
Author:
niltonneto
Message:

Versão nova do ADODB (4.5 para 4.95)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/phpgwapi/inc/adodb/drivers/adodb-odbc_mssql.inc.php

    r2 r34  
    11<?php 
    22/*  
    3 V4.51 29 July 2004  (c) 2000-2004 John Lim (jlim@natsoft.com.my). All rights reserved. 
     3V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved. 
    44  Released under both BSD license and Lesser GPL library license.  
    55  Whenever there is any discrepancy between the two licenses,  
     
    2424        var $databaseType = 'odbc_mssql'; 
    2525        var $fmtDate = "'Y-m-d'"; 
    26         var $fmtTimeStamp = "'Y-m-d h:i:sA'"; 
     26        var $fmtTimeStamp = "'Y-m-d H:i:s'"; 
    2727        var $_bindInputArray = true; 
    2828        var $metaTablesSQL="select name,case when type='U' then 'T' else 'V' end from sysobjects where (type='U' or type='V') and (name not in ('sysallocations','syscolumns','syscomments','sysdepends','sysfilegroups','sysfiles','sysfiles1','sysforeignkeys','sysfulltextcatalogs','sysindexes','sysindexkeys','sysmembers','sysobjects','syspermissions','sysprotects','sysreferences','systypes','sysusers','sysalternates','sysconstraints','syssegments','REFERENTIAL_CONSTRAINTS','CHECK_CONSTRAINTS','CONSTRAINT_TABLE_USAGE','CONSTRAINT_COLUMN_USAGE','VIEWS','VIEW_TABLE_USAGE','VIEW_COLUMN_USAGE','SCHEMATA','TABLES','TABLE_CONSTRAINTS','TABLE_PRIVILEGES','COLUMNS','COLUMN_DOMAIN_USAGE','COLUMN_PRIVILEGES','DOMAINS','DOMAIN_CONSTRAINTS','KEY_COLUMN_USAGE'))"; 
     
    4444        { 
    4545                $this->ADODB_odbc(); 
    46                 $this->curmode = SQL_CUR_USE_ODBC;       
     46                //$this->curmode = SQL_CUR_USE_ODBC;     
    4747        } 
    4848 
     
    133133        function &MetaColumns($table) 
    134134        { 
    135                 return ADOConnection::MetaColumns($table); 
     135                $arr = ADOConnection::MetaColumns($table); 
     136                return $arr; 
     137        } 
     138         
     139         
     140        function &MetaIndexes($table,$primary=false) 
     141        { 
     142                $table = $this->qstr($table); 
     143 
     144                $sql = "SELECT i.name AS ind_name, C.name AS col_name, USER_NAME(O.uid) AS Owner, c.colid, k.Keyno,  
     145                        CASE WHEN I.indid BETWEEN 1 AND 254 AND (I.status & 2048 = 2048 OR I.Status = 16402 AND O.XType = 'V') THEN 1 ELSE 0 END AS IsPK, 
     146                        CASE WHEN I.status & 2 = 2 THEN 1 ELSE 0 END AS IsUnique 
     147                        FROM dbo.sysobjects o INNER JOIN dbo.sysindexes I ON o.id = i.id  
     148                        INNER JOIN dbo.sysindexkeys K ON I.id = K.id AND I.Indid = K.Indid  
     149                        INNER JOIN dbo.syscolumns c ON K.id = C.id AND K.colid = C.Colid 
     150                        WHERE LEFT(i.name, 8) <> '_WA_Sys_' AND o.status >= 0 AND O.Name LIKE $table 
     151                        ORDER BY O.name, I.Name, K.keyno"; 
     152 
     153                global $ADODB_FETCH_MODE; 
     154                $save = $ADODB_FETCH_MODE; 
     155        $ADODB_FETCH_MODE = ADODB_FETCH_NUM; 
     156        if ($this->fetchMode !== FALSE) { 
     157                $savem = $this->SetFetchMode(FALSE); 
     158        } 
     159         
     160        $rs = $this->Execute($sql); 
     161        if (isset($savem)) { 
     162                $this->SetFetchMode($savem); 
     163        } 
     164        $ADODB_FETCH_MODE = $save; 
     165 
     166        if (!is_object($rs)) { 
     167                return FALSE; 
     168        } 
     169 
     170                $indexes = array(); 
     171                while ($row = $rs->FetchRow()) { 
     172                        if (!$primary && $row[5]) continue; 
     173                         
     174            $indexes[$row[0]]['unique'] = $row[6]; 
     175            $indexes[$row[0]]['columns'][] = $row[1]; 
     176        } 
     177        return $indexes; 
    136178        } 
    137179         
     
    140182                if (is_string($sql)) $sql = str_replace('||','+',$sql); 
    141183                return ADODB_odbc::_query($sql,$inputarr); 
     184        } 
     185         
     186        function SetTransactionMode( $transaction_mode )  
     187        { 
     188                $this->_transmode  = $transaction_mode; 
     189                if (empty($transaction_mode)) { 
     190                        $this->Execute('SET TRANSACTION ISOLATION LEVEL READ COMMITTED'); 
     191                        return; 
     192                } 
     193                if (!stristr($transaction_mode,'isolation')) $transaction_mode = 'ISOLATION LEVEL '.$transaction_mode; 
     194                $this->Execute("SET TRANSACTION ".$transaction_mode); 
    142195        } 
    143196         
     
    164217                 
    165218                if ($a && sizeof($a)>0) return $a; 
    166                 return false;      
     219                $false = false; 
     220                return $false;     
    167221        } 
    168222         
Note: See TracChangeset for help on using the changeset viewer.