il serait bon de nous dire la structure de ta table T_Ventes pour qu'on
puisse vraiment t'aider
/_Ameno_ a exposé/ :
> Faust a écrit :
>> /Après mure réflexion, _Ameno_ a écrit/ :
>>> Faust a écrit :
>>>> /_Ameno_ a exposé/ :
>>>>
>>>>>
>>>>
>>>> beaucoup de choses à dire:
>>>>
>>>> data.Query2.ParamByName(':dte').AsDate:=strtodate( formatdatetime('mm/dd/yyyy',now));
>>>>
>>>> t'as pas plus compliqué encore??????
>>>>
>>>> tu prends la peine de mettre un paramètre, de le renseigner AsDate mais
>>>> non, il faut que tu te casse la tête à le convertir en string et à la
>>>> reconvertir en Date (on dirait du code de la vcl pour le coup.... et
>>>> crois moi c'est pas forcément un compliment)
>>>> data.Query2.ParamByName(':dte').AsDate:= trunc(now);
>>>> c'est bien suffisant
>>>>
>>>> sinon, attention à la priorité des and et des or
>>>> ce que tu as ecrit revient à
>>>> type = facture or ((type = bl and regler = true) and date = :dte)
>>>> je suppose que tu voulais plutôt:
>>>> (type = ''Facture'' or type = ''BL'') and regler = true and Date = :dte
>>>> ou
>>>> type in (''Facture'', ''BL'') and regler = true and Date = :dte
>>>>
>>>> une fois ce point réglé, deux choses:
>>>> - je ne sais pas quel moteur de base de données se cache derrière le bde
>>>> mais "regler = true", je connais très peu de moteur qui l'accepte (et si
>>>> tu utilise paradox, si tu as encore le temps, je te suggère vivement d'y
>>>> renoncer et d'utiliser, par exemple, firebird... embbed ou non)
>>>> - Date est _très_ souvent un mot clé... comme nom champ c'est très très
>>>> très mal choisi... avec certains moteur ça passe (paradox notamment) avec
>>>> d'autre ça ne passe pas ou mal... donc encore une fois, en fonction du
>>>> moteur qui se cache derrière le bde le problème peut etre là
>>>>
>>>> enfin, dans ta requête, tu passe uniquement la date au paramètre dte...
>>>> c'est peut-etre voulu mais attention, si ton champ Date n'est pas
>>>> justement _uniquement_ de type date (comprendre en fait il est de type
>>>> date.heure) alors le test Date = trunc(now) ne sera vérifié QUE si Date
>>>> est à la date du jour à minuit pile (à la miliseconde près)
>>>>
>>> Bonjour,
>>> Merci pour votre explication.
>>> J'arrive toujours pas a faire exécuter ma requette.
>>> Voici l'erreur ( Invalid use of keyword. Tokern: Date=? Line Number: 2.)
>>
>>> Merci
>>
>> pour compléter la réponse de BigGrizzly, il faut encadrer les noms de
>> champs et de table par des " s'ils correspondent aussi à des mots clés:
>>
>> (type = ''Facture'' or type = ''BL'') and regler = true and "Date" = :dte
>>
> Salut,
> Autre type d'erreur : Type mismatch in expression.
--
*/Teträm/*
http://www.tetram.org
"On a toujours tort d'essayer d'avoir raison devant des gens qui ont
toutes les bonnes raisons de croire qu'ils n'ont pas tort !" - Raymond
Devos