Affichage de resultats de requetes SQL

giorhof Messages postés 18 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 5 décembre 2020 - 23 avril 2010 à 14:06
giorhof Messages postés 18 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 5 décembre 2020 - 2 mai 2010 à 21:35
bonjour a tous
mon application delphi est connecté a une base de données MySQL et j'essaie de faire des requetes SQL sur la base mais ca ne marche,
voici le code que j'ai tapé:

with DM.Qsom do
begin
close;
sql.Clear;
sql.Add('select sum(tarif_bil) from billets ');
prepare;
ExecSQL;
open;
end;
Edit1.Text:=DM.Qsom.Fields[0].Value;
end;
en deboguant j'ai constaté que le probleme venait au niveau de la ligne 14 ou j'affecte la valeur a edit1 et voici le message d'erreur qui s'affiche "le projet a provoqué une classe d'exception ElistError avec le message 'Indice de liste hors limites (0)"
s'il vous plait aidez moi

9 réponses

beckerich Messages postés 302 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 17 septembre 2013 2
23 avril 2010 à 15:33
Bonjour,

je pense que le ExecSQL est de trop,
et change en

if not IsEmpty then
  Edit1.Text:=DM.Qsom.Fields[0].AsString;

Luc;
0
giorhof Messages postés 18 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 5 décembre 2020
23 avril 2010 à 16:17
salut luc
je viens d'essayer ton code mais le même message d'erreur persite toujours.aurais-tu une autre solution?
merci d'avance
0
beckerich Messages postés 302 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 17 septembre 2013 2
23 avril 2010 à 17:14
salut,

es-tu sûr que la requête retourne un record ?

Luc.
0
cs_jeanemarre Messages postés 5 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 24 avril 2010
23 avril 2010 à 17:18
Bonjour

je pense que tu devrais nommer ton champs dans la requête :

sql.Add('select sum(tarif_bil) as total from billets ');
...
...
Edit1.Text:=DM.Qsom.FieldValues['total'];

je procède toujours ainsi.

A toi de tester

Bon courage

Jeanemarre
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
giorhof Messages postés 18 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 5 décembre 2020
23 avril 2010 à 17:49
je viens de tester la methode de jeanemarre et un nouveau message d'erreur s'affiche comme suit "Qsom:Impossible d'effectuer cette opération sur un ensemble de données ouvert"
Et je sais pas trop comment regler. faut dire que je suis debutant dans la matière. pourriez vous m'expliquez
merci encore une fois
0
cs_jeanemarre Messages postés 5 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 24 avril 2010
24 avril 2010 à 15:48
Essaie ceci :


with DM.Qsom do
begin
close;
sql.Clear;
sql.Add('select sum(tarif_bil) as total from billets');
ExecSQL;
Edit1.Text:=DM.Qsom.FieldValues['total'];
end;


Jeanemarre
0
giorhof Messages postés 18 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 5 décembre 2020
25 avril 2010 à 21:27
salut. Désolé de n'avoir pas vite répondu. a cause de la situation en Afrique c'est pas facile d'avoir internet à portée de main.
j'ai fini par résoudre le problème grâce a vous tous. merci beaucoup a jeanemarre et à Luc.
0
chazard Messages postés 4 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 3 mai 2010
2 mai 2010 à 16:23
Bonjour,
il me semble que pour une requête SQL rendant un résultat, il convient d'utiliser OPEN au lieu de EXECSQL.
J'espère que cela marche dans ce cas précis.

Chazzam
0
giorhof Messages postés 18 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 5 décembre 2020
2 mai 2010 à 21:35
bonjour chazzam,
effectivement pour une requete SQL il faut soit open ou EXECSQL
et non les deux en meme temps. j'ai essayé avec open et ca a marché donc tout va bien pour le mieux. merci énormement
0
Rejoignez-nous