Changeset 34 for trunk/phpgwapi/inc/adodb/drivers/adodb-ibase.inc.php
- Timestamp:
- 06/29/07 15:17:46 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/phpgwapi/inc/adodb/drivers/adodb-ibase.inc.php
r2 r34 1 1 <?php 2 2 /* 3 V4. 51 29 July 2004 (c) 2000-2004 John Lim (jlim@natsoft.com.my). All rights reserved.3 V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved. 4 4 Released under both BSD license and Lesser GPL library license. 5 5 Whenever there is any discrepancy between the two licenses, … … 48 48 var $dialect = 1; 49 49 var $sysDate = "cast('TODAY' as timestamp)"; 50 var $sysTimeStamp = " cast('NOW' as timestamp)";50 var $sysTimeStamp = "CURRENT_TIMESTAMP"; //"cast('NOW' as timestamp)"; 51 51 var $ansiOuter = true; 52 52 var $hasAffectedRows = false; 53 53 var $poorAffectedRows = true; 54 54 var $blobEncodeType = 'C'; 55 var $role = false; 55 56 56 57 function ADODB_ibase() … … 66 67 if ($argDatabasename) $argHostname .= ':'.$argDatabasename; 67 68 $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, 69 74 $this->charSet,$this->buffers,$this->dialect); 70 75 … … 187 192 // save old fetch mode 188 193 global $ADODB_FETCH_MODE; 189 194 $false = false; 190 195 $save = $ADODB_FETCH_MODE; 191 196 $ADODB_FETCH_MODE = ADODB_FETCH_NUM; … … 208 213 } 209 214 $ADODB_FETCH_MODE = $save; 210 return FALSE;215 return $false; 211 216 } 212 217 213 $indexes = array 218 $indexes = array(); 214 219 while ($row = $rs->FetchRow()) { 215 220 $index = $row[0]; … … 221 226 ); 222 227 } 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"; 224 229 $rs1 = $this->Execute($sql); 225 230 while ($row1 = $rs1->FetchRow()) { … … 476 481 global $ADODB_FETCH_MODE; 477 482 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]); 489 501 //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 } 491 529 //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; 533 538 } 534 539 … … 552 557 // old blobdecode function 553 558 // 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 ); 557 562 $realblob = ibase_blob_get( $blobid,$this->maxblobsize); // 2nd param is max size of blob -- Kevin Boillet <kevinboillet@yahoo.fr> 558 563 while($string = ibase_blob_get($blobid, 8192)){ … … 563 568 return( $realblob ); 564 569 } 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 } 565 596 566 597 function UpdateBlobFile($table,$column,$path,$where,$blobtype='BLOB')
Note: See TracChangeset
for help on using the changeset viewer.