/** * Seek * * @param int offset * @return bool success * @throws rdbms.SQLException */ public function seek($offset) { if (!sybase_data_seek($this->handle, $offset)) { throw new SQLException('Cannot seek to offset ' . $offset); } return TRUE; }
function seek($pos) { $status = sybase_data_seek($this->Query_ID, $pos); if ($status) { $this->Row = $pos; } return; }
/** * Data Seek * * Moves the internal pointer to the desired offset. We call * this internally before fetching results to make sure the * result set starts at zero * * @access private * @return array */ function _data_seek($n = 0) { return sybase_data_seek($this->result_id, $n); }
/** * Places a row from the result set into the given array * * Formating of the array and the data therein are configurable. * See DB_result::fetchInto() for more information. * * This method is not meant to be called directly. Use * DB_result::fetchInto() instead. It can't be declared "protected" * because DB_result is a separate object. * * @param resource $result the query result resource * @param array $arr the referenced array to put the data in * @param int $fetchmode how the resulting array should be indexed * @param int $rownum the row number to fetch (0 = first row) * * @return mixed DB_OK on success, NULL when the end of a result set is * reached or on failure * * @see DB_result::fetchInto() */ function fetchInto($result, &$arr, $fetchmode, $rownum = null) { if ($rownum !== null) { if (!@sybase_data_seek($result, $rownum)) { return null; } } if ($fetchmode & DB_FETCHMODE_ASSOC) { if (function_exists('sybase_fetch_assoc')) { $arr = @sybase_fetch_assoc($result); } else { if ($arr = @sybase_fetch_array($result)) { foreach ($arr as $key => $value) { if (is_int($key)) { unset($arr[$key]); } } } } if ($this->options['portability'] & DB_PORTABILITY_LOWERCASE && $arr) { $arr = array_change_key_case($arr, CASE_LOWER); } } else { $arr = @sybase_fetch_row($result); } if (!$arr) { return null; } if ($this->options['portability'] & DB_PORTABILITY_RTRIM) { $this->_rtrimArrayValues($arr); } if ($this->options['portability'] & DB_PORTABILITY_NULL_TO_EMPTY) { $this->_convertNullArrayValuesToEmpty($arr); } return DB_OK; }
function _seek($row) { return @sybase_data_seek($this->_queryID, $row); }
/** * Fetch a row and insert the data into an existing array. * * Formating of the array and the data therein are configurable. * See DB_result::fetchInto() for more information. * * @param resource $result query result identifier * @param array $arr (reference) array where data from the row * should be placed * @param int $fetchmode how the resulting array should be indexed * @param int $rownum the row number to fetch * * @return mixed DB_OK on success, null when end of result set is * reached or on failure * * @see DB_result::fetchInto() * @access private */ function fetchInto($result, &$arr, $fetchmode, $rownum = null) { if ($rownum !== null) { if (!@sybase_data_seek($result, $rownum)) { return null; } } if ($fetchmode & DB_FETCHMODE_ASSOC) { if (function_exists('sybase_fetch_assoc')) { $arr = @sybase_fetch_assoc($result); } else { if ($arr = @sybase_fetch_array($result)) { foreach ($arr as $key => $value) { if (is_int($key)) { unset($arr[$key]); } } } } if ($this->options['portability'] & DB_PORTABILITY_LOWERCASE && $arr) { $arr = array_change_key_case($arr, CASE_LOWER); } } else { $arr = @sybase_fetch_row($result); } if (!$arr) { // reported not work as seems that sybase_get_last_message() // always return a message here //if ($errmsg = @sybase_get_last_message()) { // return $this->sybaseRaiseError($errmsg); //} else { return null; //} } if ($this->options['portability'] & DB_PORTABILITY_RTRIM) { $this->_rtrimArrayValues($arr); } if ($this->options['portability'] & DB_PORTABILITY_NULL_TO_EMPTY) { $this->_convertNullArrayValuesToEmpty($arr); } return DB_OK; }
function fetchInto($result, &$ar, $fetchmode, $rownum = null) { if ($rownum !== null) { if (!sybase_data_seek($result, $rownum)) { return $this->raiseError(); } } $ar = $fetchmode & DB_FETCHMODE_ASSOC ? @sybase_fetch_array($result) : @sybase_fetch_row($result); if (!$ar) { // reported not work as seems that sybase_get_last_message() // always return a message here //if ($errmsg = sybase_get_last_message()) { // return $this->raiseError($errmsg); //} else { return null; //} } return DB_OK; }
/** * Move internal result pointer * * Moves the pointer within the query result to a specified location, or * to the beginning if nothing is specified. * * @param resource $result Resultset * @param integer $rowNumber Row number * * @return boolean */ public function resultSeek($result, $rowNumber) { return sybase_data_seek($result, $rowNumber); }
function LimitQuery($query, $offset, $rows) { $this->res = 0; $this->oid = 0; $this->cur = -1; $this->vcur = -1; $this->Record = array(); if ($this->conn) { @($this->res = sybase_query($query, $this->conn)); if ($this->res) { $this->cur = $offset; // Push cursor to appropriate row in case next_record() is used if ($offset > 0) { @sybase_data_seek($this->res, $offset); } $this->vcur = $offset + $rows - 1; return $this->res; } else { trigger_error("Error executing query: {$query}"); return -1; } } else { return -1; } }