Affichage de resultats de requetes SQL

Signaler
Messages postés
16
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
11 novembre 2011
-
giorhof
Messages postés
16
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
11 novembre 2011
-
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

Messages postés
302
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
17 septembre 2013
1
Bonjour,

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

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

Luc;
Messages postés
16
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
11 novembre 2011

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
Messages postés
302
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
17 septembre 2013
1
salut,

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

Luc.
Messages postés
5
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
24 avril 2010

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
Messages postés
16
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
11 novembre 2011

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
Messages postés
5
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
24 avril 2010

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
Messages postés
16
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
11 novembre 2011

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.
Messages postés
4
Date d'inscription
mercredi 20 août 2003
Statut
Membre
Dernière intervention
3 mai 2010

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
Messages postés
16
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
11 novembre 2011

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