sybase_unbuffered_query

(PHP 4 >= 4.3.0, PHP 5)

sybase_unbuffered_queryEnvía una consulta a Sybase query y no bloquea

Descripción

sybase_unbuffered_query ( string $query , resource $link_identifier [, bool $store_result ] ) : resource

sybase_unbuffered_query() envía una consulta a la base de datos activa actualmente en el servidor que está asociada con el identificador de conexión especificado. Si el identificador de conexión no se especifica, se asume la última conexión abierta. Si no hay conexión abierta, la función intenta establecer una como si se hubiera llamado a sybase_connect() , y la utiliza.

A diferencia de sybase_query(), sybase_unbuffered_query() únicamente lee la primera fila del resultado. sybase_fetch_array() y funciones similares leen más filas si es necesario. sybase_data_seek() lee tantas filas hasta la fila objetivo. El comportamiento de esta última puede ser más eficiente para conjuntos de resultados grandes.

sybase_num_rows() no devolverá el número correcto de filas si se han leído todas las filas de resultado. Para Sybase, el número de filas no es conocido y por lo tanto es calculado por la implementación del cliente.

Nota:

Si no se leen todas las filas del resultado previamente a ejecutar la siguiente consulta, PHP generará un 'warning' y cancelará todos los resultados pendientes. Para evitar esto, utilizar sybase_free_result() que cancelará las filas de resultado de una consulta que no se hayan cargado en el buffer.

Parámetros

query

link_identifier

store_result

El parámetro opcional store_result puede ser FALSE para indicar que el conjunto de resultado no deberá ser cargado en memoria, y de ese modo minimizar el uso de memoria que es particularmente interesante con conjuntos de resultados muy grandes.

Valores devueltos

Devuelve un identificador de resultado Sybase en caso de éxito, o FALSE en caso de error.

Ejemplos

Ejemplo #1 Ejemplo con sybase_unbuffered_query()

<?php

$dbh 
sybase_connect('SYBASE''''');
$q sybase_unbuffered_query('select firstname, lastname from huge_table'$dbhfalse);
sybase_data_seek($q10000);
$i 0;

while (
$row sybase_fetch_row($q)) {
    echo 
$row[0], ' '$row[1], '<br />';
    if (
$i++ > 40000) {
        break;
    }
}

sybase_free_result($q);
sybase_close($dbh);

?>

Notas

Nota: Esta función está disponible sólo cuando se utiliza la biblioteca CT de Sybase, y no la biblioteca DB.

Ver también