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-ibase.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,  
     
    4848        var $dialect = 1; 
    4949        var $sysDate = "cast('TODAY' as timestamp)"; 
    50         var $sysTimeStamp = "cast('NOW' as timestamp)"; 
     50        var $sysTimeStamp = "CURRENT_TIMESTAMP"; //"cast('NOW' as timestamp)"; 
    5151        var $ansiOuter = true; 
    5252        var $hasAffectedRows = false; 
    5353        var $poorAffectedRows = true; 
    5454        var $blobEncodeType = 'C'; 
     55        var $role = false; 
    5556         
    5657        function ADODB_ibase()  
     
    6667                if ($argDatabasename) $argHostname .= ':'.$argDatabasename; 
    6768                $fn = ($persist) ? 'ibase_pconnect':'ibase_connect'; 
    68                 $this->_connectionID = $fn($argHostname,$argUsername,$argPassword, 
     69                if ($this->role) 
     70                        $this->_connectionID = $fn($argHostname,$argUsername,$argPassword, 
     71                                        $this->charSet,$this->buffers,$this->dialect,$this->role); 
     72                else     
     73                        $this->_connectionID = $fn($argHostname,$argUsername,$argPassword, 
    6974                                        $this->charSet,$this->buffers,$this->dialect); 
    7075                 
     
    187192        // save old fetch mode 
    188193        global $ADODB_FETCH_MODE; 
    189          
     194        $false = false; 
    190195        $save = $ADODB_FETCH_MODE; 
    191196        $ADODB_FETCH_MODE = ADODB_FETCH_NUM; 
     
    208213                } 
    209214                $ADODB_FETCH_MODE = $save; 
    210             return FALSE; 
     215            return $false; 
    211216        } 
    212217         
    213         $indexes = array (); 
     218        $indexes = array(); 
    214219                while ($row = $rs->FetchRow()) { 
    215220                        $index = $row[0]; 
     
    221226                     ); 
    222227             } 
    223                         $sql = "SELECT * FROM RDB\$INDEX_SEGMENTS WHERE RDB\$INDEX_NAME = '".$name."' ORDER BY RDB\$FIELD_POSITION ASC"; 
     228                        $sql = "SELECT * FROM RDB\$INDEX_SEGMENTS WHERE RDB\$INDEX_NAME = '".$index."' ORDER BY RDB\$FIELD_POSITION ASC"; 
    224229                        $rs1 = $this->Execute($sql); 
    225230            while ($row1 = $rs1->FetchRow()) { 
     
    476481        global $ADODB_FETCH_MODE; 
    477482                 
    478                 if ($this->metaColumnsSQL) { 
    479                  
    480                         $save = $ADODB_FETCH_MODE; 
    481                         $ADODB_FETCH_MODE = ADODB_FETCH_NUM; 
    482                  
    483                         $rs = $this->Execute(sprintf($this->metaColumnsSQL,strtoupper($table))); 
    484                  
    485                         $ADODB_FETCH_MODE = $save; 
    486                         if ($rs === false) return false; 
    487  
    488                         $retarr = array(); 
     483                $save = $ADODB_FETCH_MODE; 
     484                $ADODB_FETCH_MODE = ADODB_FETCH_NUM; 
     485         
     486                $rs = $this->Execute(sprintf($this->metaColumnsSQL,strtoupper($table))); 
     487         
     488                $ADODB_FETCH_MODE = $save; 
     489                $false = false; 
     490                if ($rs === false) { 
     491                        return $false; 
     492                } 
     493                 
     494                $retarr = array(); 
     495                //OPN STUFF start 
     496                $dialect3 = ($this->dialect==3 ? true : false); 
     497                //OPN STUFF end 
     498                while (!$rs->EOF) { //print_r($rs->fields); 
     499                        $fld = new ADOFieldObject(); 
     500                        $fld->name = trim($rs->fields[0]); 
    489501                        //OPN STUFF start 
    490                         $dialect3 = ($this->dialect==3 ? true : false); 
     502                        $this->_ConvertFieldType($fld, $rs->fields[7], $rs->fields[3], $rs->fields[4], $rs->fields[5], $rs->fields[6], $dialect3); 
     503                        if (isset($rs->fields[1]) && $rs->fields[1]) { 
     504                                $fld->not_null = true; 
     505                        }                                
     506                        if (isset($rs->fields[2])) { 
     507                                 
     508                                $fld->has_default = true; 
     509                                $d = substr($rs->fields[2],strlen('default ')); 
     510                                switch ($fld->type) 
     511                                { 
     512                                case 'smallint': 
     513                                case 'integer': $fld->default_value = (int) $d; break; 
     514                                case 'char':  
     515                                case 'blob': 
     516                                case 'text': 
     517                                case 'varchar': $fld->default_value = (string) substr($d,1,strlen($d)-2); break; 
     518                                case 'double': 
     519                                case 'float': $fld->default_value = (float) $d; break; 
     520                                default: $fld->default_value = $d; break; 
     521                                } 
     522                //      case 35:$tt = 'TIMESTAMP'; break; 
     523                        } 
     524                        if ((isset($rs->fields[5])) && ($fld->type == 'blob')) { 
     525                                $fld->sub_type = $rs->fields[5]; 
     526                        } else { 
     527                                $fld->sub_type = null; 
     528                        } 
    491529                        //OPN STUFF end 
    492                         while (!$rs->EOF) { //print_r($rs->fields); 
    493                                 $fld = new ADOFieldObject(); 
    494                                 $fld->name = trim($rs->fields[0]); 
    495                                 //OPN STUFF start 
    496                                 $this->_ConvertFieldType($fld, $rs->fields[7], $rs->fields[3], $rs->fields[4], $rs->fields[5], $rs->fields[6], $dialect3); 
    497                                 if (isset($rs->fields[1]) && $rs->fields[1]) { 
    498                                         $fld->not_null = true; 
    499                                 }                                
    500                                 if (isset($rs->fields[2])) { 
    501                                          
    502                                         $fld->has_default = true; 
    503                                         $d = substr($rs->fields[2],strlen('default ')); 
    504                                         switch ($fld->type) 
    505                                         { 
    506                                         case 'smallint': 
    507                                         case 'integer': $fld->default_value = (int) $d; break; 
    508                                         case 'char':  
    509                                         case 'blob': 
    510                                         case 'text': 
    511                                         case 'varchar': $fld->default_value = (string) substr($d,1,strlen($d)-2); break; 
    512                                         case 'double': 
    513                                         case 'float': $fld->default_value = (float) $d; break; 
    514                                         default: $fld->default_value = $d; break; 
    515                                         } 
    516                         //      case 35:$tt = 'TIMESTAMP'; break; 
    517                                 } 
    518                                 if ((isset($rs->fields[5])) && ($fld->type == 'blob')) { 
    519                                         $fld->sub_type = $rs->fields[5]; 
    520                                 } else { 
    521                                         $fld->sub_type = null; 
    522                                 } 
    523                                 //OPN STUFF end 
    524                                 if ($ADODB_FETCH_MODE == ADODB_FETCH_NUM) $retarr[] = $fld;      
    525                                 else $retarr[strtoupper($fld->name)] = $fld; 
    526                                  
    527                                 $rs->MoveNext(); 
    528                         } 
    529                         $rs->Close(); 
    530                         return $retarr;  
    531                 } 
    532                 return false; 
     530                        if ($ADODB_FETCH_MODE == ADODB_FETCH_NUM) $retarr[] = $fld;      
     531                        else $retarr[strtoupper($fld->name)] = $fld; 
     532                         
     533                        $rs->MoveNext(); 
     534                } 
     535                $rs->Close(); 
     536                if ( empty($retarr)) return $false; 
     537                else return $retarr;     
    533538        } 
    534539         
     
    552557        // old blobdecode function 
    553558        // still used to auto-decode all blob's 
    554         function _BlobDecode( $blob )  
    555         { 
    556                 $blobid = ibase_blob_open( $blob ); 
     559        function _BlobDecode_old( $blob )  
     560        { 
     561                $blobid = ibase_blob_open($this->_connectionID, $blob ); 
    557562                $realblob = ibase_blob_get( $blobid,$this->maxblobsize); // 2nd param is max size of blob -- Kevin Boillet <kevinboillet@yahoo.fr> 
    558563                while($string = ibase_blob_get($blobid, 8192)){  
     
    563568                return( $realblob ); 
    564569        }  
     570         
     571        function _BlobDecode( $blob )  
     572    { 
     573        if  (ADODB_PHPVER >= 0x5000) { 
     574            $blob_data = ibase_blob_info($this->_connectionID, $blob ); 
     575            $blobid = ibase_blob_open($this->_connectionID, $blob ); 
     576        } else { 
     577 
     578            $blob_data = ibase_blob_info( $blob ); 
     579            $blobid = ibase_blob_open( $blob ); 
     580        } 
     581 
     582        if( $blob_data[0] > $this->maxblobsize ) { 
     583 
     584            $realblob = ibase_blob_get($blobid, $this->maxblobsize); 
     585 
     586            while($string = ibase_blob_get($blobid, 8192)){ 
     587                $realblob .= $string;  
     588            } 
     589        } else { 
     590            $realblob = ibase_blob_get($blobid, $blob_data[0]); 
     591        } 
     592 
     593        ibase_blob_close( $blobid ); 
     594        return( $realblob ); 
     595        } 
    565596         
    566597        function UpdateBlobFile($table,$column,$path,$where,$blobtype='BLOB')  
Note: See TracChangeset for help on using the changeset viewer.