adoquery : recuperer resultat d'une requete [resolu]

adoquery : recuperer resultat d'une requete [resolu] - Delphi/Pascal - Programmation

Marsh Posté le 09-05-2005 à 17:19:31    

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
Reply

Marsh Posté le 09-05-2005 à 17:19:31   

Reply

Marsh Posté le 09-05-2005 à 20:58:26    

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
Reply

Marsh Posté le 11-05-2005 à 19:01:39    

merci antp
pour la solution et pour les conseils

Reply

Marsh Posté le 11-05-2005 à 23:02:49    

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
Reply

Sujets relatifs:

Leave a Replay

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