Garder le resultat d'une requête ?

Garder le resultat d'une requête ? - Perl - Programmation

Marsh Posté le 12-11-2004 à 11:28:55    

Salut,
 
j'débute en perl désolé.  :D  
Heu en fait je récupère le résultat d'une requête SQL comme ceci :  
 

Code :
  1. my($query) = "SELECT * FROM table";
  2. $result = sql($query);
  3. # Puis pour afficher
  4. while(my $sqldata = $result ->fetchrow_hashref()) {
  5. ...
  6. }
  7. # Execute une requete SQL et retourne le resultat
  8. sub sql {
  9.     my($request) = @_;
  10.     my $res = $dbh->prepare($request);
  11.     $res->execute;
  12.     return $res;
  13. }


 
 
Bref ca marche, mais ce que je voudrais, c'est :  
Si j'ai besoin du meme resultat, ne pas devoir ré-executer la requete, car c'est une requete qui risque d'être appelée plusieurs fois par seconde :/
 
Donc je voudrais qu'elle s'execute une seule fosi au chargement du script. Mais avoir tjrs acces au données sans de voir convertir tout ca en un table et ajouter plein de code pour rien.
 
C'est possible ?  
 
 
Merci d'avance


Message édité par Gat$ le 12-11-2004 à 11:35:10

---------------
Recherche de partenaires pvp dans World of Warcraft :: http://www.wowteamfinder.com
Reply

Marsh Posté le 12-11-2004 à 11:28:55   

Reply

Marsh Posté le 12-11-2004 à 17:52:23    

tu pourrais peut etre executer ta requete une fois puis stocker les resultats dans un hash. Tu pourras ainsi re-parcourir le hash autant de fois que tu le souhaites au cours de ton script.

Reply

Marsh Posté le 16-11-2004 à 12:08:07    

dans ton script ajoute:

Code :
  1. use Memoize;
  2. memoize('sql');


 
ca fait une mise en cache automatique de ta fonction "sql" en fonction des arguments qu'elle recoit
http://search.cpan.org/~mjd/Memoize-1.01/Memoize.pm


Message édité par pospos le 16-11-2004 à 12:08:45
Reply

Marsh Posté le 22-11-2004 à 20:34:29    

Merci.


---------------
Recherche de partenaires pvp dans World of Warcraft :: http://www.wowteamfinder.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed