ADODB_ibase(); } function ServerInfo() { $arr['dialect'] = $this->dialect; switch ($arr['dialect']) { case '': case '1': $s = 'Firebird Dialect 1'; break; case '2': $s = 'Firebird Dialect 2'; break; default: case '3': $s = 'Firebird Dialect 3'; break; } $arr['version'] = ADOConnection::_findvers($s); $arr['description'] = $s; return $arr; } // Note that Interbase 6.5 uses this ROWS instead - don't you love forking wars! // SELECT col1, col2 FROM table ROWS 5 -- get 5 rows // SELECT col1, col2 FROM TABLE ORDER BY col1 ROWS 3 TO 7 -- first 5 skip 2 function &SelectLimit($sql, $nrows = -1, $offset = -1, $inputarr = false, $secs = 0) { $str = 'SELECT '; if ($nrows >= 0) $str .= "FIRST $nrows "; $str .= ($offset >= 0) ? "SKIP $offset " : ''; $sql = preg_replace('/^[ \t]*select/i', $str, $sql); if ($secs) $rs =& $this->CacheExecute($secs, $sql, $inputarr); else $rs =& $this->Execute($sql, $inputarr); return $rs; } } class ADORecordSet_firebird extends ADORecordSet_ibase { var $databaseType = "firebird"; function ADORecordSet_firebird($id, $mode = false) { $this->ADORecordSet_ibase($id, $mode); } }