downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

odbc_gettypeinfo> <odbc_foreignkeys
[edit] Last updated: Fri, 10 Feb 2012

view this page in

odbc_free_result

(PHP 4, PHP 5)

odbc_free_resultLibère les ressources associées à un résultat

Description

bool odbc_free_result ( resource $result_id )

Libère les ressources associées à un résultat.

odbc_free_result() n'est nécessaire que si vous craignez d'utiliser trop de mémoire lors de l'exécution de votre script. Tous les résultats en mémoire seront libérés dès la fin du script.

Liste de paramètres

result_id

L'identifiant de résultat.

Valeurs de retour

Retourne toujours TRUE.

Notes

Note:

Si l'autovalidation est désactivée (voir odbc_autocommit()) et que vous appelez odbc_free_result() avant de valider vos requêtes, toutes les transactions préparées seront annulées.



odbc_gettypeinfo> <odbc_foreignkeys
[edit] Last updated: Fri, 10 Feb 2012
 
add a note add a note User Contributed Notes odbc_free_result
lm At bible in switzerland 25-Nov-2010 12:13
I use WinDev 15.0 HyperFileSQL ODBC Connector on Windows, PHP 5.2.3.
With this configuration, any result ressource obtained with odbc_exec must be freed by odbc_free_result before the next query by odbc_exec.
If the result ressource is not freed odbc_exec will return a corrupt result ressource.
example:
odbc_exec($query1);
odbc_exec($query2);
odbc_result_all();

Output: A table with empty cells
EMY 03-Feb-2009 08:45
It seems it is common sense to say it is a god practice to free any resource when it isn´t necessary anymore.
Also, when talking about releasing the resources associated with a given result set it is a common sense to say never release a result set before it is assured to have been either commited or rolled back.
Then, the following code sequence should be the most adequate (assuming auto-commit is disabled):

odbc_commit(...);
odbc_free_result(...);
...
odbc_close(...);
rich at kastle dot com 20-Dec-2004 03:48
("Note:  If auto-commit is disabled (see odbc_autocommit()) and you call odbc_free_result() before committing, all pending transactions are rolled back.")

I've looked thru the code, and that note is definitely wrong, at least in my environment (Windows/SQL Server).  odbc_free_result ultimately just calls SQLFreeStmt which has NO EFFECT on outstanding transactions.

In fact, it seems it must be wrong for all environments, because the SQLFreeStmt is bound to the destruction of the result resource.  So unset($result) would be just as dangerous - and you're randomly and unpredictably screwed if garbage collection reaps the result set before your transaction's done.
rogersd at island dot net 05-Sep-2001 08:03
odbc_free_result() is also the way to avoid the dreaded "Too many open cursor" error.

 
show source | credits | stats | sitemap | contact | advertising | mirror sites