1 | <?php |
---|
2 | /* |
---|
3 | V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved. |
---|
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 | |
---|
22 | var $sysTimeStamp = "CURRENT_TIMESTAMP"; //"cast('NOW' as timestamp)"; |
---|
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 | { |
---|
49 | $nrows = (integer) $nrows; |
---|
50 | $offset = (integer) $offset; |
---|
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 | ?> |
---|