PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > nzn.fr.delphi > bde paradox et date
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
bde paradox et date

Réponse
 
LinkBack Outils de la discussion
Vieux 12/10/2007, 22h24   #1
Ameno
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut bde paradox et date

Bonjour,
J'arrive pas a exécuter une requette sql ou il ya un champ date.

data.Query2.active:=False;
data.Query2.sql.Clear;
data.Query2.sql.Add( 'SELECT sum(mt_régler) as Total FROM T_Ventes');
data.Query2.sql.Add ('where type=''Facture'' or type=''BL'' and
regler=true and Date=:dte');
data.Query2.ParamByName(':dte').AsDate:=strtodate( formatdatetime('mm/dd/yyyy',now));
data.Query2.Active:=True;
totalca:=data.Query2.FieldByName('Total').AsCurren cy;

Merci pour l'aide
  Réponse avec citation
Vieux 12/10/2007, 23h15   #2
TedIF
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

> Bonjour,
> J'arrive pas a exécuter une requette sql ou il ya un champ date.
>
> data.Query2.active:=False;
> data.Query2.sql.Clear;
> data.Query2.sql.Add( 'SELECT sum(mt_régler) as Total FROM T_Ventes');
> data.Query2.sql.Add ('where type=''Facture'' or type=''BL'' and regler=true
> and Date=:dte');
> data.Query2.ParamByName(':dte').AsDate:=strtodate( formatdatetime('mm/dd/yyyy',now));
> data.Query2.Active:=True;
> totalca:=data.Query2.FieldByName('Total').AsCurren cy;
>
> Merci pour l'aide


pourquoi passer par un passage de paramètre dans une construction de
requête dynamique ?

--

Dominique


  Réponse avec citation
Vieux 12/10/2007, 23h21   #3
Faust
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

/_TedIF_ a écrit/ :
>> Bonjour,
>> J'arrive pas a exécuter une requette sql ou il ya un champ date.
>>
>> data.Query2.active:=False;
>> data.Query2.sql.Clear;
>> data.Query2.sql.Add( 'SELECT sum(mt_régler) as Total FROM T_Ventes');
>> data.Query2.sql.Add ('where type=''Facture'' or type=''BL'' and regler=true
>> and Date=:dte');
>> data.Query2.ParamByName(':dte').AsDate:=strtodate( formatdatetime('mm/dd/yyyy',now));
>> data.Query2.Active:=True;
>> totalca:=data.Query2.FieldByName('Total').AsCurren cy;
>>
>> Merci pour l'aide


> pourquoi passer par un passage de paramètre dans une construction de requête
> dynamique ?


- pour éviter d'avoir à encoder les dates en string
- parce que la requête va peut etre être réexécutée plus loin
- parce que c'est plus lisible

--
*/Teträm/*
http://www.tetram.org

"Tape d'abord, tape ensuite, et tape pour finir" - Proverbe Troll


  Réponse avec citation
Vieux 12/10/2007, 23h33   #4
Faust
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

/_Ameno_ a exposé/ :
> Bonjour,
> J'arrive pas a exécuter une requette sql ou il ya un champ date.


> data.Query2.active:=False;
> data.Query2.sql.Clear;
> data.Query2.sql.Add( 'SELECT sum(mt_régler) as Total FROM T_Ventes');
> data.Query2.sql.Add ('where type=''Facture'' or type=''BL'' and regler=true
> and Date=:dte');
> data.Query2.ParamByName(':dte').AsDate:=strtodate( formatdatetime('mm/dd/yyyy',now));
> data.Query2.Active:=True;
> totalca:=data.Query2.FieldByName('Total').AsCurren cy;


> Merci pour l'aide


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


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)

--
*/Teträm/*
http://www.tetram.org

« Chérie, viens à table, le murloc va refroidir ! »


  Réponse avec citation
Vieux 13/10/2007, 07h48   #5
BigGrizzly
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

Faust a écrit :
> data.Query2.ParamByName(':dte').AsDate:= trunc(now);


Il existe même la fonction Date.
  Réponse avec citation
Vieux 13/10/2007, 11h04   #6
Ameno
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

Faust a écrit :
> /_Ameno_ a exposé/ :
>> Bonjour,
>> J'arrive pas a exécuter une requette sql ou il ya un champ date.

>
>> data.Query2.active:=False;
>> data.Query2.sql.Clear;
>> data.Query2.sql.Add( 'SELECT sum(mt_régler) as Total FROM T_Ventes');
>> data.Query2.sql.Add ('where type=''Facture'' or type=''BL'' and
>> regler=true and Date=:dte');
>> data.Query2.ParamByName(':dte').AsDate:=strtodate( formatdatetime('mm/dd/yyyy',now));
>>
>> data.Query2.Active:=True;
>> totalca:=data.Query2.FieldByName('Total').AsCurren cy;

>
>> Merci pour l'aide

>
> 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

  Réponse avec citation
Vieux 13/10/2007, 11h34   #7
BigGrizzly
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

Ameno a écrit :
> Faust a écrit :
>> /_Ameno_ a exposé/ :
>>> Bonjour,
>>> J'arrive pas a exécuter une requette sql ou il ya un champ date.

>>
>>> data.Query2.active:=False;
>>> data.Query2.sql.Clear;
>>> data.Query2.sql.Add( 'SELECT sum(mt_régler) as Total FROM T_Ventes');
>>> data.Query2.sql.Add ('where type=''Facture'' or type=''BL'' and
>>> regler=true and Date=:dte');
>>> data.Query2.ParamByName(':dte').AsDate:=strtodate( formatdatetime('mm/dd/yyyy',now));
>>>
>>> data.Query2.Active:=True;
>>> totalca:=data.Query2.FieldByName('Total').AsCurren cy;

>>
>>> Merci pour l'aide

>>
>> 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
>

"date" de préférence. Car c'est un mot réservé.
  Réponse avec citation
Vieux 13/10/2007, 13h00   #8
Faust
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

/Après mure réflexion, _Ameno_ a écrit/ :
> Faust a écrit :
>> /_Ameno_ a exposé/ :
>>> Bonjour,
>>> J'arrive pas a exécuter une requette sql ou il ya un champ date.

>>
>>> data.Query2.active:=False;
>>> data.Query2.sql.Clear;
>>> data.Query2.sql.Add( 'SELECT sum(mt_régler) as Total FROM T_Ventes');
>>> data.Query2.sql.Add ('where type=''Facture'' or type=''BL'' and
>>> regler=true and Date=:dte');
>>> data.Query2.ParamByName(':dte').AsDate:=strtodate( formatdatetime('mm/dd/yyyy',now));
>>>
>>> data.Query2.Active:=True;
>>> totalca:=data.Query2.FieldByName('Total').AsCurren cy;

>>
>>> Merci pour l'aide

>>
>> 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

--
*/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


  Réponse avec citation
Vieux 13/10/2007, 19h20   #9
Ameno
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

Faust a écrit :
> /Après mure réflexion, _Ameno_ a écrit/ :
>> Faust a écrit :
>>> /_Ameno_ a exposé/ :
>>>> Bonjour,
>>>> J'arrive pas a exécuter une requette sql ou il ya un champ date.
>>>
>>>> data.Query2.active:=False;
>>>> data.Query2.sql.Clear;
>>>> data.Query2.sql.Add( 'SELECT sum(mt_régler) as Total FROM T_Ventes');
>>>> data.Query2.sql.Add ('where type=''Facture'' or type=''BL'' and
>>>> regler=true and Date=:dte');
>>>> data.Query2.ParamByName(':dte').AsDate:=strtodate( formatdatetime('mm/dd/yyyy',now));
>>>>
>>>>
>>>> data.Query2.Active:=True;
>>>> totalca:=data.Query2.FieldByName('Total').AsCurren cy;
>>>
>>>> Merci pour l'aide
>>>
>>> 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.
  Réponse avec citation
Vieux 13/10/2007, 22h37   #10
Faust
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

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


  Réponse avec citation
Vieux 13/10/2007, 23h17   #11
Ameno
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

Faust a écrit :
> 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.

>

Voila
BEGIN
with data.T_Ventes do begin
Active := False;
TableType :=data.T_Ventes.TableType;
TableName := 'T_Ventes';
FieldDefs.Clear;
FieldDefs.Add('code', ftfloat, 0 ,False);
FieldDefs.Add('Type', ftString,20, False);
FieldDefs.Add('code_Cli', ftFloat, 0, False);
FieldDefs.Add('Raison', ftString,50, False);
FieldDefs.Add('Adresse', ftString, 60, False);
FieldDefs.Add('Ville', ftString,20, False);
FieldDefs.Add('Tel1', ftString,14, False);
FieldDefs.Add('Tel2', ftString,14, False);
FieldDefs.Add('Fax', ftString,14, False);
FieldDefs.Add('RC', ftString,25, False);
FieldDefs.Add('IF', ftString,25, False);
FieldDefs.Add('CNSS', ftString,25, False);
FieldDefs.Add('Patente', ftString,25, False);
FieldDefs.Add('Total_HT',ftCurrency,0, False);
FieldDefs.Add('Total_TTC',ftcurrency,0, False);
FieldDefs.Add('Frais_Port',ftCurrency,0, False);
FieldDefs.Add('Total_Taxe',ftCurrency,0, False);
FieldDefs.Add('Escompte',ftCurrency,0, False);
FieldDefs.Add('Date',ftdate,0, False);
FieldDefs.Add('Echeance',ftDate,0, False);
FieldDefs.Add('Remise',ftCurrency,0, False);
FieldDefs.Add('Mode de reglement',ftString,15, False);
FieldDefs.Add('Timbre',ftCurrency,0, False);
FieldDefs.Add('Type_Client',ftString,20, False);
FieldDefs.Add('Regler',ftBoolean,0, False);
FieldDefs.Add('Transfere',ftBoolean,0, False);
FieldDefs.Add('Mt_Régler',ftCurrency,0, False);
FieldDefs.Add('Net a Payer',ftCurrency,0, False);
FieldDefs.Add('Info',ftMemo,200, False);
FieldDefs.Add('N_Lot', ftString, 25, False);
FieldDefs.Add('Designation_Lot', ftString, 25, False);
FieldDefs.Add('Exo_TVA', ftBoolean,0, False);
FieldDefs.Add('Réf payements', ftString,100, False);
FieldDefs.Add('Gestion_Stock', ftBoolean,0, False);
FieldDefs.Add('Montant_Rest',ftCurrency,0, False);
IndexDefs.Clear;
IndexDefs.Add('', 'Code;type', [ixPrimary]);
CreateTable;
END;
end;
  Réponse avec citation
Vieux 14/10/2007, 07h46   #12
Faust
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

comme ça je vois pas

poste nous la requête qui te fais cette erreur

sinon, je me demande si c'est pas l'accent dans mt_régler qui pose
problème... essaye avec sum("mt_régler")

/Dans son message précédent, _Ameno_ a écrit/ :
> Faust a écrit :
>> 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/ :
>>>>
>>>> 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.

>>

> Voila
> BEGIN
> with data.T_Ventes do begin
> Active := False;
> TableType :=data.T_Ventes.TableType;
> TableName := 'T_Ventes';
> FieldDefs.Clear;
> FieldDefs.Add('code', ftfloat, 0 ,False);
> FieldDefs.Add('Type', ftString,20, False);
> FieldDefs.Add('code_Cli', ftFloat, 0, False);
> FieldDefs.Add('Raison', ftString,50, False);
> FieldDefs.Add('Adresse', ftString, 60, False);
> FieldDefs.Add('Ville', ftString,20, False);
> FieldDefs.Add('Tel1', ftString,14, False);
> FieldDefs.Add('Tel2', ftString,14, False);
> FieldDefs.Add('Fax', ftString,14, False);
> FieldDefs.Add('RC', ftString,25, False);
> FieldDefs.Add('IF', ftString,25, False);
> FieldDefs.Add('CNSS', ftString,25, False);
> FieldDefs.Add('Patente', ftString,25, False);
> FieldDefs.Add('Total_HT',ftCurrency,0, False);
> FieldDefs.Add('Total_TTC',ftcurrency,0, False);
> FieldDefs.Add('Frais_Port',ftCurrency,0, False);
> FieldDefs.Add('Total_Taxe',ftCurrency,0, False);
> FieldDefs.Add('Escompte',ftCurrency,0, False);
> FieldDefs.Add('Date',ftdate,0, False);
> FieldDefs.Add('Echeance',ftDate,0, False);
> FieldDefs.Add('Remise',ftCurrency,0, False);
> FieldDefs.Add('Mode de reglement',ftString,15, False);
> FieldDefs.Add('Timbre',ftCurrency,0, False);
> FieldDefs.Add('Type_Client',ftString,20, False);
> FieldDefs.Add('Regler',ftBoolean,0, False);
> FieldDefs.Add('Transfere',ftBoolean,0, False);
> FieldDefs.Add('Mt_Régler',ftCurrency,0, False);
> FieldDefs.Add('Net a Payer',ftCurrency,0, False);
> FieldDefs.Add('Info',ftMemo,200, False);
> FieldDefs.Add('N_Lot', ftString, 25, False);
> FieldDefs.Add('Designation_Lot', ftString, 25, False);
> FieldDefs.Add('Exo_TVA', ftBoolean,0, False);
> FieldDefs.Add('Réf payements', ftString,100, False);
> FieldDefs.Add('Gestion_Stock', ftBoolean,0, False);
> FieldDefs.Add('Montant_Rest',ftCurrency,0, False);
> IndexDefs.Clear;
> IndexDefs.Add('', 'Code;type', [ixPrimary]);
> CreateTable;
> END;
> end;


--
*/Teträm/*
http://www.tetram.org

"Après ton vomi, ne remange pas tout, laisses-en pour tes mouches" -
Proverbe Troll


  Réponse avec citation
Vieux 14/10/2007, 13h08   #13
Ameno
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

Faust a écrit :
> comme ça je vois pas
>
> poste nous la requête qui te fais cette erreur
>
> sinon, je me demande si c'est pas l'accent dans mt_régler qui pose
> problème... essaye avec sum("mt_régler")
>
> /Dans son message précédent, _Ameno_ a écrit/ :
>> Faust a écrit :
>>> 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/ :
>>>>>
>>>>> 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.
>>>

>> Voila
>> BEGIN
>> with data.T_Ventes do begin
>> Active := False;
>> TableType :=data.T_Ventes.TableType;
>> TableName := 'T_Ventes';
>> FieldDefs.Clear;
>> FieldDefs.Add('code', ftfloat, 0 ,False);
>> FieldDefs.Add('Type', ftString,20, False);
>> FieldDefs.Add('code_Cli', ftFloat, 0, False);
>> FieldDefs.Add('Raison', ftString,50, False);
>> FieldDefs.Add('Adresse', ftString, 60, False);
>> FieldDefs.Add('Ville', ftString,20, False);
>> FieldDefs.Add('Tel1', ftString,14, False);
>> FieldDefs.Add('Tel2', ftString,14, False);
>> FieldDefs.Add('Fax', ftString,14, False);
>> FieldDefs.Add('RC', ftString,25, False);
>> FieldDefs.Add('IF', ftString,25, False);
>> FieldDefs.Add('CNSS', ftString,25, False);
>> FieldDefs.Add('Patente', ftString,25, False);
>> FieldDefs.Add('Total_HT',ftCurrency,0, False);
>> FieldDefs.Add('Total_TTC',ftcurrency,0, False);
>> FieldDefs.Add('Frais_Port',ftCurrency,0, False);
>> FieldDefs.Add('Total_Taxe',ftCurrency,0, False);
>> FieldDefs.Add('Escompte',ftCurrency,0, False);
>> FieldDefs.Add('Date',ftdate,0, False);
>> FieldDefs.Add('Echeance',ftDate,0, False);
>> FieldDefs.Add('Remise',ftCurrency,0, False);
>> FieldDefs.Add('Mode de reglement',ftString,15, False);
>> FieldDefs.Add('Timbre',ftCurrency,0, False);
>> FieldDefs.Add('Type_Client',ftString,20, False);
>> FieldDefs.Add('Regler',ftBoolean,0, False);
>> FieldDefs.Add('Transfere',ftBoolean,0, False);
>> FieldDefs.Add('Mt_Régler',ftCurrency,0, False);
>> FieldDefs.Add('Net a Payer',ftCurrency,0, False);
>> FieldDefs.Add('Info',ftMemo,200, False);
>> FieldDefs.Add('N_Lot', ftString, 25, False);
>> FieldDefs.Add('Designation_Lot', ftString, 25, False);
>> FieldDefs.Add('Exo_TVA', ftBoolean,0, False);
>> FieldDefs.Add('Réf payements', ftString,100, False);
>> FieldDefs.Add('Gestion_Stock', ftBoolean,0, False);
>> FieldDefs.Add('Montant_Rest',ftCurrency,0, False);
>> IndexDefs.Clear;
>> IndexDefs.Add('', 'Code;type', [ixPrimary]);
>> CreateTable;
>> END;
>> end;

>

Bon, si je fais cette requette tout marche bien ( (type = ''Facture'' or
type = ''BL'') and regler = true ) si j'ajoute date=:dte alors la tout foire
  Réponse avec citation
Vieux 14/10/2007, 13h54   #14
Faust
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

/Après mure réflexion, _Ameno_ a écrit/ :
> Bon, si je fais cette requette tout marche bien ( (type = ''Facture'' or type
> = ''BL'') and regler = true ) si j'ajoute date=:dte alors la tout foire


on t'as dit de mettre date entre ", tu l'as fait?:

(type = ''Facture'' or type = ''BL'') and (regler = true) and
"date"=:dte

--
*/Teträm/*
http://www.tetram.org

"L'amour pour épée, l'humour pour bouclier" - Bernard Werber


  Réponse avec citation
Vieux 14/10/2007, 18h23   #15
Ameno
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

Faust a écrit :
> /Après mure réflexion, _Ameno_ a écrit/ :
>> Bon, si je fais cette requette tout marche bien ( (type = ''Facture''
>> or type = ''BL'') and regler = true ) si j'ajoute date=:dte alors la
>> tout foire

>
> on t'as dit de mettre date entre ", tu l'as fait?:
>
> (type = ''Facture'' or type = ''BL'') and (regler = true) and "date"=:dte
>


Oui c'est deja fait..
  Réponse avec citation
Vieux 14/10/2007, 19h17   #16
BigGrizzly
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

Ameno a écrit :
> data.Query2.ParamByName('dte').AsDateTime:=Date;



Relis bien cette ligne corrigée.

  Réponse avec citation
Vieux 14/10/2007, 20h46   #17
Faust
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

/Après mure réflexion, _BigGrizzly_ a écrit/ :
> Ameno a écrit :
>> data.Query2.ParamByName('dte').AsDateTime:=Date;


> Relis bien cette ligne corrigée.


le ftdate c'est aussi un datetime? 'tain c'est vieux tout ça

--
*/Teträm/*
http://www.tetram.org

"Ecoute toujours ton estomac, c'est quelqu'un de confiance" - Proverbe
Troll


  Réponse avec citation
Vieux 14/10/2007, 20h52   #18
BigGrizzly
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

Faust a écrit :
> /Après mure réflexion, _BigGrizzly_ a écrit/ :
>> Ameno a écrit :
>>> data.Query2.ParamByName('dte').AsDateTime:=Date;

>
>> Relis bien cette ligne corrigée.

>
> le ftdate c'est aussi un datetime? 'tain c'est vieux tout ça
>


Bof, peu importe. L'important n'était pas là, mais sur le ':dte' qu'il
avait laissé dans ParamByName
  Réponse avec citation
Vieux 14/10/2007, 20h54   #19
Ameno
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

BigGrizzly a écrit :
> Ameno a écrit :
>> data.Query2.ParamByName('dte').AsDateTime:=Date;

>
>
> Relis bien cette ligne corrigée.
>

Malheureusement, j'ai le même problème ( Type mismatch in expression.)
  Réponse avec citation
Vieux 14/10/2007, 22h49   #20
Faust
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date §

/Après mure réflexion, _BigGrizzly_ a écrit/ :
> Faust a écrit :
>> /Après mure réflexion, _BigGrizzly_ a écrit/ :
>>> Ameno a écrit :
>>>> data.Query2.ParamByName('dte').AsDateTime:=Date;

>>
>>> Relis bien cette ligne corrigée.

>>
>> le ftdate c'est aussi un datetime? 'tain c'est vieux tout ça
>>


> Bof, peu importe. L'important n'était pas là, mais sur le ':dte' qu'il avait
> laissé dans ParamByName


arf bien vu, j'avais même pas fait attention à ça

--
*/Teträm/*
http://www.tetram.org

"Si tu as trop bu, rebois un coup pour faire passer" - Proverbe Troll


  Réponse avec citation
Vieux 15/10/2007, 06h32   #21
BigGrizzly
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

Ameno a écrit :
> BigGrizzly a écrit :
>> Ameno a écrit :
>>> data.Query2.ParamByName('dte').AsDateTime:=Date;

>>
>>
>> Relis bien cette ligne corrigée.
>>

> Malheureusement, j'ai le même problème ( Type mismatch in expression.)



Mettre des accents dans les noms des champs, c'est pour faire chier les
chefs de projet ou les clients. En général. Mais c'est une mauvaise
idée. Tout comme utiliser des mots réservés.

Après ces remarques préliminaires. Peux-tu essayer d'utiliser un
paramètre pour ça : "régler"=:reglement
  Réponse avec citation
Vieux 15/10/2007, 14h16   #22
Ameno
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date

BigGrizzly a écrit :
> Ameno a écrit :
>> BigGrizzly a écrit :
>>> Ameno a écrit :
>>>> data.Query2.ParamByName('dte').AsDateTime:=Date;
>>>
>>>
>>> Relis bien cette ligne corrigée.
>>>

>> Malheureusement, j'ai le même problème ( Type mismatch in expression.)

>
>
> Mettre des accents dans les noms des champs, c'est pour faire chier les
> chefs de projet ou les clients. En général. Mais c'est une mauvaise
> idée. Tout comme utiliser des mots réservés.
>
> Après ces remarques préliminaires. Peux-tu essayer d'utiliser un
> paramètre pour ça : "régler"=:reglement

Salut,
C'est la même chose, le problème vient de (date) est non de (regler)
Merci
  Réponse avec citation
Vieux 15/10/2007, 14h20   #23
BigGrizzly
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: bde paradox et date



Ameno <ameno_123@hotmail.com>
:: Salut,
:: C'est la même chose, le problème vient de (date) est non de (regler)
:: Merci

Tu peux changer le nom de ton champ ? Si tu es certain que le souci vient de
là, c'est une façon de voir ce qu'il en est vraiment.


  Réponse avec citation
Vieux 15/10/2007, 14h32   #24
Ameno
Aucun Avatar