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/adodb-csvlib.inc.php

    r2 r34  
    88 
    99/*  
    10   V4.51 29 July 2004  (c) 2000-2004 John Lim (jlim@natsoft.com.my). All rights reserved. 
     10 
     11  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved. 
    1112  Released under both BSD license and Lesser GPL library license.  
    1213  Whenever there is any discrepancy between the two licenses,  
     
    6768                        $flds[] = $o; 
    6869                } 
    69                  
    70                 $rs =& new ADORecordSet_array(); 
    71                 $rs->InitArrayFields($rows,$flds); 
    72                 return $line.serialize($rs); 
     70         
     71                $savefetch = isset($rs->adodbFetchMode) ? $rs->adodbFetchMode : $rs->fetchMode; 
     72                $class = $rs->connection->arrayClass; 
     73                $rs2 = new $class(); 
     74                $rs2->sql = $rs->sql; 
     75                $rs2->oldProvider = $rs->dataProvider;  
     76                $rs2->InitArrayFields($rows,$flds); 
     77                $rs2->fetchMode = $savefetch; 
     78                return $line.serialize($rs2); 
    7379        } 
    7480 
     
    8591*                       empty recordset is returned 
    8692*/ 
    87         function &csv2rs($url,&$err,$timeout=0) 
     93        function &csv2rs($url,&$err,$timeout=0, $rsclass='ADORecordSet_array') 
    8894        { 
     95                $false = false; 
    8996                $err = false; 
    9097                $fp = @fopen($url,'rb'); 
    9198                if (!$fp) { 
    9299                        $err = $url.' file/URL not found'; 
    93                         return false; 
    94                 } 
    95                 flock($fp, LOCK_SH); 
     100                        return $false; 
     101                } 
     102                @flock($fp, LOCK_SH); 
    96103                $arr = array(); 
    97104                $ttl = 0; 
     
    102109                                $err = trim(substr($meta[0],4,1024)); 
    103110                                fclose($fp); 
    104                                 return false; 
     111                                return $false; 
    105112                        } 
    106113                        // check for meta data 
     
    114121                                                $err = "Corrupt first line for format -1"; 
    115122                                                fclose($fp); 
    116                                                 return false; 
     123                                                return $false; 
    117124                                        } 
    118125                                        fclose($fp); 
     
    120127                                        if ($timeout > 0) { 
    121128                                                $err = " Illegal Timeout $timeout "; 
    122                                                 return false; 
     129                                                return $false; 
    123130                                        } 
     131                                         
     132                                        $rs = new $rsclass($val=true); 
    124133                                        $rs->fields = array(); 
    125134                                        $rs->timeCreated = $meta[1]; 
    126                                         $rs =& new ADORecordSet($val=true); 
    127135                                        $rs->EOF = true; 
    128                                         $rs->_numOfFields=0; 
     136                                        $rs->_numOfFields = 0; 
    129137                                        $rs->sql = urldecode($meta[2]); 
    130138                                        $rs->affectedrows = (integer)$meta[3]; 
     
    150158                                                                        fclose($fp); 
    151159                                                                        $err = "Timeout 3"; 
    152                                                                         return false; 
     160                                                                        return $false; 
    153161                                                                } 
    154162                                                                break; 
     
    157165                                                                        fclose($fp); 
    158166                                                                        $err = "Timeout 2"; 
    159                                                                         return false; 
     167                                                                        return $false; 
    160168                                                                } 
    161169                                                                break; 
     
    164172                                                                        fclose($fp); 
    165173                                                                        $err = "Timeout 1"; 
    166                                                                         return false; 
     174                                                                        return $false; 
    167175                                                                } 
    168176                                                                break; 
     
    170178                                                                fclose($fp); 
    171179                                                                $err = "Timeout 0"; 
    172                                                                 return false; 
     180                                                                return $false; 
    173181                                                        } // switch 
    174182                                                         
     
    204212                                        fclose($fp); 
    205213                                        $err = "Unexpected EOF 1"; 
    206                                         return false; 
     214                                        return $false; 
    207215                                } 
    208216                        } 
     
    217225                                        break; 
    218226                                } 
    219                                 $fld =& new ADOFieldObject(); 
     227                                $fld = new ADOFieldObject(); 
    220228                                $fld->name = urldecode($o2[0]); 
    221229                                $fld->type = $o2[1]; 
     
    226234                        fclose($fp); 
    227235                        $err = "Recordset had unexpected EOF 2"; 
    228                         return false; 
     236                        return $false; 
    229237                } 
    230238                 
     
    243251                        $err = "Recordset had unexpected EOF (in serialized recordset)"; 
    244252                        if (get_magic_quotes_runtime()) $err .= ". Magic Quotes Runtime should be disabled!"; 
    245                         return false; 
    246                 } 
    247                 $rs =& new ADORecordSet_array(); 
     253                        return $false; 
     254                } 
     255                $rs = new $rsclass(); 
    248256                $rs->timeCreated = $ttl; 
    249257                $rs->InitArrayFields($arr,$flds); 
     
    273281                        // getmypid() actually returns 0 on Win98 - never mind! 
    274282                        $tmpname = $filename.uniqid($mtime).getmypid(); 
    275                         if (!($fd = fopen($tmpname,'a'))) return false; 
     283                        if (!($fd = @fopen($tmpname,'a'))) return false; 
    276284                        $ok = ftruncate($fd,0);                  
    277285                        if (!fwrite($fd,$contents)) $ok = false; 
     
    289297                        return $ok; 
    290298                } 
    291                 if (!($fd = fopen($filename, 'a'))) return false; 
     299                if (!($fd = @fopen($filename, 'a'))) return false; 
    292300                if (flock($fd, LOCK_EX) && ftruncate($fd, 0)) { 
    293301                        $ok = fwrite( $fd, $contents ); 
Note: See TracChangeset for help on using the changeset viewer.