|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||||
|
Membre régulier
![]() Inscription : février 2005 Messages : 100 ![]() |
J'ai rencontré une erreur louche que j'ai trouvée dans mon code SQL d'une de mes procédures stockées et qui est le suivant :
Code :
Code :
Citation:
|
|||||
|
|
00
|
|
|
#2 | |||||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Citation:
Ce n'est pas parce que vous faites un group by que ca renvoie une seule ligne et heureusement d'ailleurs. |
|||||
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : février 2005 Messages : 100 ![]() |
Je veux bien...
Mais étant donné le contenu de la base et les valeurs de retour observées de mes yeux (avec le test en dehors de la procédure stockée)... Normalement, ça n'en retourne qu'une. |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Normalement c'est bien là le problème... Normalement
Le jours où Anormalement vous aurez des données supplémentaires qui font que vous avez deux lignes au lieux d'une comment le système devra réagir ??? Je veux bien que vous mettiez des controles en amons qui feront que vous aurez toujours une seule ligne, celà Firebird ou Interbase ne peux le deviner. Il vous dit que votre ordre SQL indépendamment des données que vous avez actuellement (car les données sont sencées évoluer) renvoie plusieurs lignes et que vous l'utilisez comme s'il n'en renvoyait qu'une. C'est normal que celà lui pose un problème. Je ne vois pas en quoi utilisez une boucle FOR vous pose problème. Actuellement votre boucle ne renvera qu'un enregistrement. Celà vous permet en plus de déterminer le comportement que doit avoir votre programme en cas ou il en renverait plusieurs ( les ignorer ? les traiter ?) |
|
|
00
|
|
|
#5 | ||
|
Membre régulier
![]() Inscription : février 2005 Messages : 100 ![]() |
Justement, j'ai commencé en utilisant une boucle FOR mais j'avais la même erreur qui s'affichait:
Code :
|
||
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Inscription : février 2005 Messages : 100 ![]() |
J'ai repris l'ancienne version de mon code avec la boucle for et ai enfin trouvé la solution. Le problème était tout bêtement dû au nom d'une de mes variables... Trop la honte!!
Merci pour l'aide ! |
|
|
00
|
|
|
#7 | ||
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 379 ![]() |
comme épilogue au problème, voici une solution qui retourne à coup sûr un enregistrement unique, c'est juste un bout de requête qui ne résoud pas tous les problèmes, mais qui fonctionne parfaitement:
Code :
ne pas oublier de "lier" le "sous-select" avec les mêmes champs qui isoles les données de la requête principale. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com