Description
resource
sybase_unbuffered_query ( string query, resource link_identifier [, bool store_result] )
sybase_unbuffered_query() retourne une ressource
Sybase en cas de réussite, et FALSE sinon.
Note : Cette fonction n'est disponible
qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.
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.
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.
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[0]; if ($i++ > 40000) break; } sybase_free_result($q); sybase_close($dbh); ?>
|
|
Voir aussi
sybase_query().