Executer une requete qui ne renvoie aucun enregistrement

Résolu
develomagaly Messages postés 46 Date d'inscription mercredi 5 octobre 2005 Statut Membre Dernière intervention 3 mai 2006 - 9 nov. 2005 à 10:00
vincentstryckmans Messages postés 228 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 25 octobre 2006 - 16 nov. 2005 à 07:52
bonjour,
je suis en total désespoire car sa fait maintenant deux jours que je suis sur ce probleme.

J'effectue une requete et parfois elle me retourne 1 enregistrement et parfois aucun.
Il faut que je teste les cas ou elle me retourne 1 enregistrement et les cas ou elle me retourne aucun enregistrement.

Solution 1 :
J'execute ma requete
Je met ma requete a ACTIVE:=true --> Plantage car on ne peut pas activer une requete qui ne renvoie aucun resultat.

Et apres je voualis Compter le nombre d'entegistrement . Mais comme je peux pas executer ma requete pas apres je suis coincé alors aider moi s'il vous plais

8 réponses

vincentstryckmans Messages postés 228 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 25 octobre 2006
16 nov. 2005 à 07:52
Question bête : es-tu obligée d'utiliser MySQL ?



Personellement, je ne trouve pas qu'il s'agisse d'un serveur SQL des plus brillants.

Si tu veux du gratuit et bien intégrer à Delphi, utilise Interbase 6.01 et les composants Interbase Express.



Cela fait trois que je les utilise sans aucun problème .. .. si ce n'est mes propres bugs

Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.

Vincent Stryckmans.
3
vincentstryckmans Messages postés 228 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 25 octobre 2006
9 nov. 2005 à 12:33
Bonjour,



Quel composant utilises-tu ? Quelle base de données ?



Normalement, mettre un Tdataset avec active à true va faire exécuter la
requête sql par le bde ou le serveur sql sur lequel le dataset se
connecte.

S'il n'y a aucun record retourné par la requête eof est true et recordcount = 0.

Je ne vois pas en quoi mettre active à true planterais un soft. Il doit y avoir autre chose.

Quel message d'exception reçois-tu ? Ta requête est-elle exécutable et sa syntaxe correcte? ... ...

Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.

Vincent Stryckmans.
0
develomagaly Messages postés 46 Date d'inscription mercredi 5 octobre 2005 Statut Membre Dernière intervention 3 mai 2006
9 nov. 2005 à 14:03
J'utilise delphi 2005 et MySQL . Je prend un TADODataSET. pour ma requete elle est bonne ( elle s'execute sur MySQL) . Je recois comme message d'erreur " taille de champs incorrecte"
0
develomagaly Messages postés 46 Date d'inscription mercredi 5 octobre 2005 Statut Membre Dernière intervention 3 mai 2006
9 nov. 2005 à 14:07
pour ma requete quand je met :
SELECT montant FROM montant WHERE page = 'ENT_REP' AND No_lig=110 and date=2005 ;

Pas de probleme quand active:=true.
Car il existe au moin un enregistrement dans la BDD

Par contre quand je change la date
SELECT montant FROM montant WHERE page = 'ENT_REP' AND No_lig=110 and date=2004 ;
Probleme . message "taille de champs incorrecte"
car dans la BDD , il n'y a pas d'enregistrement quand date= 2004
0

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

Posez votre question
vincentstryckmans Messages postés 228 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 25 octobre 2006
10 nov. 2005 à 08:04
Sur www.torry.net, tu vas trouver un package de composants delphi pour
mysql qui normalement ne nécessitent pas de bde et d'odbc.

Essaie un peu avec ceux-là.



!! le champ que tu appelles date n'est il pas un mot réservé dans mysql. En tout cas il l'est pour le standard sql 92

Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.

Vincent Stryckmans.
0
develomagaly Messages postés 46 Date d'inscription mercredi 5 octobre 2005 Statut Membre Dernière intervention 3 mai 2006
10 nov. 2005 à 09:07
En fait le Pb ne vient pas du mot date. Si je remplace par exemple date par Madate , la meme erreur se produit.
En faite, il ne veut pas que j'execute une requete qui contient dans le WHERE une valeur qui n'existe pas .

SELECT montant WHERE date=2004.
Si dans ma base je n'est aucun montant pour l'année 2004 alors j'obtient une erreur.

S'est quand meme de l'abus !
0
vincentstryckmans Messages postés 228 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 25 octobre 2006
10 nov. 2005 à 10:26
As-tu essayé ta requête directement avec le logiciel d'administration de mysql (je sais pas comment il s'appelle) ?



Comment réagit-il si tu fais where date <> 2004 ?

Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.

Vincent Stryckmans.
0
develomagaly Messages postés 46 Date d'inscription mercredi 5 octobre 2005 Statut Membre Dernière intervention 3 mai 2006
10 nov. 2005 à 16:16
sa fonctionne sa me renvoie des donnees , les bonnes données meme mais si je fais ass_date=2004, sa marche aussi car sa me renvoie 0 lignes
mais si je le fait sur delphi avec un TADODataset et ba la sa ne marche po

Mais s'est pas grave j'ai trouvé la solution un peu lourde quand meme
- je fais une requette qui me selectionne toute les date
- tant que non fain de fichier
je regarde si la date de la BDD est egal a 2004
Si oui
trouve = true
Si non
trouve = false
Fin si
et apres j'execute ce que je voulais faire quand il n'y a pas d'associe pour la date = 2004

J'ai trouvé que sa comme solution

Merci quand meme de ton aide
0