[2] | 1 | <?php |
---|
| 2 | /* |
---|
[34] | 3 | V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved. |
---|
[2] | 4 | Released under both BSD license and Lesser GPL library license. |
---|
| 5 | Whenever there is any discrepancy between the two licenses, |
---|
| 6 | the BSD license will take precedence. |
---|
| 7 | Set tabs to 4 for best viewing. |
---|
| 8 | |
---|
| 9 | Latest version is available at http://adodb.sourceforge.net |
---|
| 10 | |
---|
| 11 | */ |
---|
| 12 | |
---|
| 13 | // security - hide paths |
---|
| 14 | if (!defined('ADODB_DIR')) die(); |
---|
| 15 | |
---|
| 16 | include_once(ADODB_DIR."/drivers/adodb-ibase.inc.php"); |
---|
| 17 | |
---|
| 18 | class ADODB_firebird extends ADODB_ibase { |
---|
| 19 | var $databaseType = "firebird"; |
---|
| 20 | var $dialect = 3; |
---|
| 21 | |
---|
[34] | 22 | var $sysTimeStamp = "CURRENT_TIMESTAMP"; //"cast('NOW' as timestamp)"; |
---|
[2] | 23 | |
---|
| 24 | function ADODB_firebird() |
---|
| 25 | { |
---|
| 26 | $this->ADODB_ibase(); |
---|
| 27 | } |
---|
| 28 | |
---|
| 29 | function ServerInfo() |
---|
| 30 | { |
---|
| 31 | $arr['dialect'] = $this->dialect; |
---|
| 32 | switch($arr['dialect']) { |
---|
| 33 | case '': |
---|
| 34 | case '1': $s = 'Firebird Dialect 1'; break; |
---|
| 35 | case '2': $s = 'Firebird Dialect 2'; break; |
---|
| 36 | default: |
---|
| 37 | case '3': $s = 'Firebird Dialect 3'; break; |
---|
| 38 | } |
---|
| 39 | $arr['version'] = ADOConnection::_findvers($s); |
---|
| 40 | $arr['description'] = $s; |
---|
| 41 | return $arr; |
---|
| 42 | } |
---|
| 43 | |
---|
| 44 | // Note that Interbase 6.5 uses this ROWS instead - don't you love forking wars! |
---|
| 45 | // SELECT col1, col2 FROM table ROWS 5 -- get 5 rows |
---|
| 46 | // SELECT col1, col2 FROM TABLE ORDER BY col1 ROWS 3 TO 7 -- first 5 skip 2 |
---|
| 47 | function &SelectLimit($sql,$nrows=-1,$offset=-1,$inputarr=false, $secs=0) |
---|
| 48 | { |
---|
[34] | 49 | $nrows = (integer) $nrows; |
---|
| 50 | $offset = (integer) $offset; |
---|
[2] | 51 | $str = 'SELECT '; |
---|
| 52 | if ($nrows >= 0) $str .= "FIRST $nrows "; |
---|
| 53 | $str .=($offset>=0) ? "SKIP $offset " : ''; |
---|
| 54 | |
---|
| 55 | $sql = preg_replace('/^[ \t]*select/i',$str,$sql); |
---|
| 56 | if ($secs) |
---|
| 57 | $rs =& $this->CacheExecute($secs,$sql,$inputarr); |
---|
| 58 | else |
---|
| 59 | $rs =& $this->Execute($sql,$inputarr); |
---|
| 60 | |
---|
| 61 | return $rs; |
---|
| 62 | } |
---|
| 63 | |
---|
| 64 | |
---|
| 65 | }; |
---|
| 66 | |
---|
| 67 | |
---|
| 68 | class ADORecordSet_firebird extends ADORecordSet_ibase { |
---|
| 69 | |
---|
| 70 | var $databaseType = "firebird"; |
---|
| 71 | |
---|
| 72 | function ADORecordSet_firebird($id,$mode=false) |
---|
| 73 | { |
---|
| 74 | $this->ADORecordSet_ibase($id,$mode); |
---|
| 75 | } |
---|
| 76 | } |
---|
| 77 | ?> |
---|