Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1208 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  adoquery : recuperer resultat d'une requete [resolu]

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

adoquery : recuperer resultat d'une requete [resolu]

n°1076662
let_me_in
Posté le 09-05-2005 à 17:19:31  profilanswer
 

bonjour
j'ai une table congré(no_cong,.....)
je veux recuperer le max des no_cong dans une variable, et voila ce que j'ai fait(je suis debutant):
 
adoquery1.sql.add('select max(no_cong) from congré');
adoquery1.execsql;
no_cong:=adotable1.fieldbyname('no_cong').asinteger;

 
pas d'erreur, mais le resultat est faux(263 qui est le premier enregistrement au lieu de 264)!!!!
 
j'ai essaye ensuite
no_cong:=adoquery1.sql.add('select max(no_cong) from congré');
adoquery1.execsql;

 
cette fois c'est 0
 
et puis encore une fois
adoquery1.sql.add('select max(no_cong) from congré');
no_cong:=adoquery1.execsql;

et c'est toujours 0
 
et pour finir j'ai tester
 
adoquery1.sql.add('select max(no_cong) as resultat from congré');
no_cong:=adoquery1.fieldbyname('resultat').asinteger;

 
mais cette fois c'est le champs 'resultat' qui n'existe pas(ça c'est normal je pense).
merci de m'aider sur ce point


Message édité par let_me_in le 11-05-2005 à 23:03:00
mood
Publicité
Posté le 09-05-2005 à 17:19:31  profilanswer
 

n°1076890
antp
Super Administrateur
Champion des excuses bidons
Posté le 09-05-2005 à 20:58:26  profilanswer
 

Déjà pour une requête qui renvoie un résultat il faut utiliser Open et non ExecSQL (qui est réservé aux insert, update, etc.)
 
Ensuite plutôt que d'utiliser FieldByName tu peux utiliser Fields[n] où n est le numéro de la colonne (0 dans ce cas-ci), ça évite les problèmes quand le nom de la colonne du résultat d'un calcul change selon le SGBD.
 
N'oublie pas de faire un Clear de ta requête SQL avant d'y ajouter chaque fois une ligne (ou alors assigne directement le Text)
 
En résumé je ferais :
adoquery1.SQL.Text := 'select max(no_cong) from congré';
adoquery1.Open;
no_cong := adotable1.Fields[0].AsInteger;
 
(et les accents dans les noms de table c'est pas très judicieux comme choix :D)


Message édité par antp le 09-05-2005 à 21:00:20

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1079955
let_me_in
Posté le 11-05-2005 à 19:01:39  profilanswer
 

merci antp
pour la solution et pour les conseils

n°1080354
antp
Super Administrateur
Champion des excuses bidons
Posté le 11-05-2005 à 23:02:49  profilanswer
 

le "résolu" il faut le mettre à la fin du titre, ou alors pas entre [ ], sinon ça cache le nom de la sous-cat ;)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  adoquery : recuperer resultat d'une requete [resolu]

 

Sujets relatifs
[RESOLU]Gestion des erreurs dans VB[Debutant] Construire une requete
recuperer des donnees dans fichier .dbrequete mysql pour gerer un planning
recuperer le nom d'un dossier[RESOLU] Macro - copie de fichier
Regexp qui ne matche pas [résolu]Problème avec un caddie (ajouter un article déjà dedans) [Résolu]
[résolu] [PHP5] Redefinir une classecomment récupérer l'adresse d'une page ?
Plus de sujets relatifs à : adoquery : recuperer resultat d'une requete [resolu]


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR