|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
> 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 |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
/_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 |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
/_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) -- */Teträm/* http://www.tetram.org « Chérie, viens à table, le murloc va refroidir ! » |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
Faust a écrit :
> data.Query2.ParamByName(':dte').AsDate:= trunc(now); Il existe même la fonction Date. |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
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é. |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
/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 |
|
|
|
#9 |
|
Messages: n/a
Hébergeur: |
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. |
|
|
|
#10 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#11 |
|
Messages: n/a
Hébergeur: |
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; |
|
|
|
#12 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#13 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#14 |
|
Messages: n/a
Hébergeur: |
/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 |
|
|
|
#15 |
|
Messages: n/a
Hébergeur: |
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.. |
|
|
|
#16 |
|
Messages: n/a
Hébergeur: |
Ameno a écrit :
> data.Query2.ParamByName('dte').AsDateTime:=Date; Relis bien cette ligne corrigée. |
|
|
|
#17 |
|
Messages: n/a
Hébergeur: |
/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 |
|
|
|
#18 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#19 |
|
Messages: n/a
Hébergeur: |
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.) |
|
|
|
#20 |
|
Messages: n/a
Hébergeur: |
/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 |
|
|
|
#21 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#22 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#23 |
|
Messages: n/a
Hébergeur: |
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. |
|
|
|
#24 |
|
|