/**
  * 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;
 }
Example #2
0
 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);
 }
Example #6
0
 /**
  * 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;
 }
Example #7
0
 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;
 }
Example #8
0
 /**
  * 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;
     }
 }