sybase_set_message_handler
tokyo_tyrant
Fonctions Sybase
PHP Manual

# sybase_unbuffered_query

(PHP 4 >= 4.3.0, PHP 5)

sybase_unbuffered_query — Envoie une requête à Sybase et ne bloque pas

### Description

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

sybase_unbuffered_query() envoie la requête `query` au serveur Sybase actif, représenté par `link_identifier`. Si `link_identifier` n'est pas spécifié, la dernière connexion ouverte sera utilisée. Si aucune connexion n'a été ouverte, la fonction essaiera d'établir un lien avec sybase_connect(), et de l'utiliser.

Contrairement à sybase_query(), sybase_unbuffered_query() lit uniquement la première ligne lue. sybase_fetch_array() et les fonctions similaires lisent les lignes nécessaires. sybase_data_seek() lit jusqu'à la prochaine ligne. Ce comportement fournit des performances accrues pour les résultats de grande taille.

sybase_num_rows() ne retournera le nombre de lignes correct que si toutes les lignes du résultat ont été lues. Pour Sybase, le nombre de ligne n'est pas connu, et doit être calculé par le programme client.

> Note: Si vous ne lisez pas toutes les lignes du résultat avant d'exécuter une nouvelle requête, PHP va générer une alerte, et annuler toutes les lignes qui restent à lire. Pour éviter cela, utilise la fonction sybase_free_result() qui va annuler les lignes restantes.

### Liste de paramètres

`query`

`link_identifier`

`store_result`

  Le paramètre optionnel `store_result` peut valoir `FALSE` pour indiquer que les lignes ne doivent pas être ramenées en mémoire, afin de réduire la consommation, surtout dans le cas de très grands résultats.

### Valeurs de retour

Retourne un identifiant de résultat Sybase en cas de succès, ou `FALSE` si une erreur survient.

### Exemples

Exemple #1 Exemple avec 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[1], '<br />';
if ($i++ > 40000) {
break;
}
}
sybase_free_result($q);
sybase_close($dbh);
?>`

### Notes

> Note: Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.

### Voir aussi

- sybase_query() - Envoie une requête à une base Sybase

sybase_set_message_handler
tokyo_tyrant
Fonctions Sybase
PHP Manual