(PHP 4 >= 4.3.0, PHP 5)
sybase_unbuffered_query — Envía una sentencia SQL a Sybase sin bloquear
Devuelve un identificador de resultado Sybase positivo en caso exitoso, o FALSE ante un error.
Note: Esta función se encuentra disponible solamente cuando se usan las bibliotecas CT de Sybase y no las bibliotecas DB.
sybase_unbuffered_query() envía una consulta a la actual base de datos activa en el servidor que está asociada con el identificador de enlace especificado. Si no se especifica un identificador de enlace, se asume el último enlace abierto. Si no hay un enlace abierto, la función intentará establecer un enlace como si sybase_connect() fuese llamada, y lo usará.
A diferencia de sybase_query(), sybase_unbuffered_query() leerá sólo la primera fila del resultado asociado. sybase_fetch_array() una función similar leerá mas filas según necesite. sybase_data_seek() lee hasta la fila solicitada. Este comportamiento puede producir un mejor desempeño en resultados asociados muy grandes.
sybase_num_rows() Sólo regresará el número de filas del resultado asociado que ha sido leido. Para Sybase, el número de filas en un resultado es desconocido, por lo tanto debe ser calculado por una implementación del cliente.
Note: Si no ha utilizado todos los resultados asociados antes de ejecutar una nueva sentencia, PHP generará una advertencia y cancelará todos los resultados pendientes. Para evitar esto, use sybase_free_result() el cual cancelará los resultados pendientes de una sentencia sin almacenamiento intermedio.
El parámetro opcional almacena_resultado puede estar en FALSE para indicar que el resultado asociado no debe ser traido a la memoria, y así minimiza el uso de la memoria, lo cuál es particularmente interesante con gran cantidad de filas en un resultado asociado.
Vea también sybase_query()
Example#1 Ejemplo sybase_unbuffered_query()
<?php
$dbh= sybase_connect('SYBASE', '', '');
$q= sybase_unbuffered_query('select firstname, lastname from huge_table', $dbh, false);
sybase_data_seek($q, 10000);
$i= 0;
while ($row= sybase_fetch_row($q)) {
echo $row[0] . ' ' . $row[0];
if ($i++ > 40000) break;
}
sybase_free_result($q);
sybase_close($dbh);
?>