khawarizm
Messages postés116Date d'inscriptionmercredi 22 novembre 2000StatutMembreDernière intervention 4 août 2010
-
24 juin 2007 à 16:49
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 2021
-
26 juin 2007 à 22:23
bonjour quelcun peut me dir qu'est ce qui cloche avec cette procedure :
Ensuite, suivant que tu veuilles faire un SELECT une autre fonction, on utilise Open ou ExecSQL. Open est fait pour SELECT et ExecSQL pour les autres (ar ex : DELETE ...)
Sinon, peux-tu dire quel est ton message d'erreur ?
khawarizm
Messages postés116Date d'inscriptionmercredi 22 novembre 2000StatutMembreDernière intervention 4 août 20101 24 juin 2007 à 20:40
Bonjour et merci oniria pour vootre répense
mais le probleme persiste ,
DM.IBQuery3.SQL est une requete de selection avec un where à la fin
le message d'erreur actuel " le projet à provoquer une claased'exception EIBInterbaseError avec le message dynamique sql error
SQL error code = -104Token unknown -line 10 char 33
)'.processus stopé."
khawarizm
Messages postés116Date d'inscriptionmercredi 22 novembre 2000StatutMembreDernière intervention 4 août 20101 25 juin 2007 à 00:39
bonjour ;
justement il n'ya rien de particulier " From tableAdherants" c tout .
et en plus l'SQL sans les add marche tres bien . alors le probleme est dans les add
je n'arive pas trouver l'erreur .
Vous n’avez pas trouvé la réponse que vous recherchez ?
WhiteHippo
Messages postés1154Date d'inscriptionsamedi 14 août 2004StatutMembreDernière intervention 5 avril 20123 25 juin 2007 à 09:15
Bonjour,
Attention avec les instructions OR et AND en SQL !!
Ce n'est pas comme avec Delphi, il faut tout développer.
Un exemple :
SQL.Add ( 'SELECT Numero') ;
SQL.Add ( 'FROM MaTable') ;
SQL.Add ( 'WHERE ( (A=0) AND (B=0) AND (N>=2000) AND ') ;
SQL.Add ( ' ( (Valeur1<>0) OR (Valeur2<>0) OR (Valeur3<>0) ) ') ;
SQL.Add ( ' )') ;
Cela ne sera pas accepté par le SQL. Il faudra ecrire la requete comme suit :
SQL.Add ( 'SELECT Numero') ;
SQL.Add ( 'FROM MaTable') ;
SQL.Add ( 'WHERE ( (A=0) AND (B=0) AND (N>=2000) AND (Valeur1<>0) OR ') ;
SQL.Add ( ' (A=0) AND (B=0) AND (N>=2000) AND (Valeur2<>0) OR ') ;
SQL.Add ( ' (A=0) AND (B=0) AND (N>=2000) AND (Valeur3<>0) ') ;
SQL.Add ( ' )') ;
Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 25 juin 2007 à 19:28
petit trux imparable pour vérifier une requête :
Mettre un point d'arrêt sur sur l'execSQL ou l'OPEN, puis CTRL F7 et taper
DM.IBQ_Adherant.SQL[0] + DM.IBQ_Adherant.SQL[1] +
DM.IBQ_Adherant.SQL[2] + etc etc. jusqu'au bout de l'affichage.
et sur Entrée, on visualise toute la requête.
et en général, on voit tout de suite d'où vient l'erreur.