cs_kouvolo68
Messages postés6Date d'inscriptiondimanche 19 janvier 2003StatutMembreDernière intervention20 mai 2005
-
18 mai 2005 à 19:16
vincentstryckmans
Messages postés228Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention25 octobre 2006
-
23 mai 2005 à 08:02
Salut,
Delphi 6(Ado) et access2000
Ma requete doit afficher les commandes de la journée :
Query.SQL.text:='SELECT * FROM commande WHERE date='+datetostr(date);
'date ici est le mot clé date de delphi mais je l'ai fait aussi en récupérant la date dans un TEdit mais j'ai toujours le même problème.
(mon champ date est du type date de access )
et voici l'erreur que j'ai
[Erreur] principal.pas(70): Types incompatibles : 'String' et 'TDateTime'
ça m'oblige donc a changé le type dans la base de donné et à prendre un string mais dans ce cas la requete ne me renvoi pas les éléments juste (ce qui est logique).
Merci de me répondre j'ai besoin de résoudre ce problème pour avancer dans mon travail.
Merci
cs_kouvolo68
Messages postés6Date d'inscriptiondimanche 19 janvier 2003StatutMembreDernière intervention20 mai 2005 20 mai 2005 à 21:17
Merci de vos réponses
Il faut dire que la première réponse de Ellde ma aidé mais a lieu de
Query.SQL.text:='SELECT * FROM commande WHERE date=:ladate';
Query.ParamByName('ladate').AsDateTime := Date;
j'ai du faire ça
Query.SQL.text:='SELECT * FROM commande WHERE date=:ladate';
Query.Parameters.ParamByName('ladate').value := Date;
c'est donc différentde son code mais c'est lui qui ma aidée,merci.
Au sujet du type string à la place du type comme on dit moldov et sim51 j'y ai pensé et ça marche quand on une requete pour pour une date comme ce que j'ai demandé mais ca marche pas si on veut avoir un un requete qui ramène un résultat compris entre deux date, je donne un exemple:
Query.SQL.Text:='SELECT * FROM magasin WHERE date BETWEEN'+(edit1.Text)+'AND'+ (edit2.Text);
dans ce cas si on veut les données du magasin compris entre le 05/02/2005 et le 30/04/2005 et que le 02/03/2005 existe dans la table , l'enregistrement au 02/03/2005 n'apparaitra pas dans les résultats car 02 est inférieur à 05 (j'espère que vous comprenez) parce que étant des string la comparaison ce caratère par caractère.
Essayer et vous direz et sivous trouvez un moyen de faire marché une telle requete pendant que les date son tu type string envoyé moi le resultat tres vite. Réfléchissé y. Merci encore.
vincentstryckmans
Messages postés228Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention25 octobre 2006 19 mai 2005 à 17:27
J'ai du lire une table access 97 et la transposer en Interbase. Le
filtre sur le champ date-heure de la table sauvegarde permettait de
trier les événements ayant eu lieu par exemple du 14/05/2005 00:00:00
jusque et y compris 14/05/2005 23:59:59
Fais aussi attention au format de la date. Nous européens écrivons
d'abord le jour puis le mois. Les yankees écrivent le mois puis le
jour, d'où le format mm/dd/yyyy au lieu de dd/mm/yyyy
Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.
cs_sim51
Messages postés240Date d'inscriptiondimanche 31 octobre 2004StatutMembreDernière intervention31 décembre 20062 20 mai 2005 à 14:31
Oui je pense que ton problème provient surment d'une erreur de type de date entre le type date de delphi et le type date d'access. Regarde dans les aides des programmes respectif, moi j'ai eu le même problème avec java et postgresql, et on peut généralement choisir entre différent type de date possible (justement à cause de ces problèmes ).
Sinon si tu y arrives pas, je te conseil comme qq1 l'a déjà fait, de mettre un type string pour la date de ta bdd, puis tu choisis toi même le type que tu veux sauf que ce sera un type string, et dans tes requêtes select cela ne posera pas de prob si tu suis toujours la même typographie.
Enfin voilà dis nous si tu veux de plus ample information
N'oubliez pas de cliquer sur réponse acceptée si la réponse vous convient !!!