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