|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : pb date différente une fois dans la base de donnéee [ Base de données / Access ] (yotamanga)
Informations & options pour cette discussion
|
lundi 16 avril 2007 à 11:33:53 |
pb date différente une fois dans la base de donnéee

yotamanga
|
Bonjour, je viens chercher de l'aide auprès de vous. Je début en delphi. Voici mon probleme : j'ai une date que je veux insérer dans un base de données [access]. L'insertion se fait mais il y a un truc qui va pas. a la place d'avoir la date du jour ( par exemple) j' ai cela : 30/12/1899 00:02:52 oO; C'est assez bizarre car lorsque j'affiche la date sur delphi cela me donne bien la date du genre : 16/04/2007 . Mon champ date_injection est en date,abrégée sous [access] voila la procédure d'insertion procedure TInjection.Insert(date : TDate);
begin agenda.adq.SQL.Clear ; agenda.adq.SQL.Add('Insert into injection (date_injection) Values(' + FormatDateTime('dd/mm/yyyy',date) +')'); agenda.adq.ExecSQL; agenda.adq.Close ; end;
En espérant votre aide, cordialement , Yota
|
|
|
|
lundi 16 avril 2007 à 11:55:25 |
Re : pb date différente une fois dans la base de donnéee

Loda
|
salut,
je suis pas baléze en BD, mais je trouve ton problème curieux.
c'est bizarre, on dirait un problème de format de date ou une confusion entre time/now ou DateToStr/TimeToStr (vu que "0.0" en date Delphi c'est le 30/12/1899) mais c'est pas le cas (vu que tu utilise FormatDateTime et que le type access commence à l'année 100).
pourrais-tu ajouter:
outputdebugstring(pchar(floattostr(date))); outputdebugstring(pchar(FormatDateTime('dd/mm/yyyy',date))); ou mem1.lines.add(floattostr(date)); mem1.lines.add(FormatDateTime('dd/mm/yyyy',date));
avant ta requet (SQL.Clear) et nous donner la sortie?
sinon, pour faire un test, essayer d'ajouter un champs de type string dans ta BD et de sauver ta date comme string. (juste pour voir de quel côté est le problème)
Loda
Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
|
|
|
|
lundi 16 avril 2007 à 12:34:03 |
Re : pb date différente une fois dans la base de donnéee

yotamanga
|
merci pour la réponse rapide  Pour le memo, cela donne : mem1 39192,5172388542 20/04/2007 Pour l insertion dans un champ de type string sa donne : sans changer le code d'insertion: 3,23866467364225E-03 en changeant le code d'insertion en le mettant en string : (DateToStr(date)) : 3,23866467364225E-03 enfin la meme chose lol
|
|
|
|
lundi 16 avril 2007 à 12:37:42 |
Re : pb date différente une fois dans la base de donnéee

yotamanga
|
hum logiquement cela devrait donner ='20/04/2007' >_< je comprend plus rien
|
|
|
|
lundi 16 avril 2007 à 12:45:12 |
Re : pb date différente une fois dans la base de donnéee

jelume
|
Bonjour
je vais me répéter encore une fois :-) mais il est tellement plus simple d'utiliser les parameters. Sinon, le format de date pour access n'est sans doute pas celui que tu utilises. Regardes dans ta table, le format du champ date. Ou éventuellement, testes directement dans ton code delphi le formatage de la date en YYYY/mm/dd
J-L
|
|
|
|
lundi 16 avril 2007 à 13:02:18 |
Re : pb date différente une fois dans la base de donnéee

yotamanga
|
merci pour la réponse ! quand je change mon code delphi avec :YYYY/mm/dd cela donne dans la base de donée : 17/01/1900 14:00:00 >_< mon champ dans ma base est en "Date, abrégé" ce qui donne, cela access , jj/mm/aaaa pourtant j obtiens une date et une heure ce qui correspondrait au format "Date, complet ">_< mais pourtant le champ est bien en date abrégé >_< j vais me renseigner sur les parameter ( euh je connais pas comment cela s'utilise  )
|
|
|
|
lundi 16 avril 2007 à 13:15:13 |
Re : pb date différente une fois dans la base de donnéee

Loda
|
re, "logiquement cela devrait donner ='20/04/2007'" : oui. donc, tu t'es planté lors de ton test. Vérifie sur quel champs (et de quel type) tu sauve ton string de test. Stp, donne nous le bout de code utilisé.
Aussi, dans ton insert, essaye juste de remplace formatDateTime par DateToStr.(au cas ou c'est un problème de format régional)
sinon, jelume a raison. les paramètres (adq.parameters) peuvent résoudre (et simplier) bien des problèmes. (j'ai résolu un problème de " / : grâce à ce même conseille venant également de lui.)
A part ça, dans bcp d'exemple du net, les date sont "quoted" avec # genre #20/121/1900#. (j'en sais pas plus)
"Mon champ date_injection est en date,abrégée sous [access]" C'est quoi ça? je n'ai pas de format "date abrégée" sur mon access. C'est un format d'affichage? ou de stockage?
Loda
PS: on est le 16 aujourd'hui, pas le 20. ;-)
Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
|
|
|
|
lundi 16 avril 2007 à 13:19:49 |
Re : pb date différente une fois dans la base de donnéee

jelume
|
un truc dans ce genre là :
agenda.adq.SQL.Clear ; agenda.adq.SQL.Add('Insert into injection (date_injection) Values(:P)' ; agenda.adq.Parameters.CreateParameter('P', ftDate, pdInputOutput, SizeOf(TDatetime), nil) agenda.adq.Parameters[0] := LaDate agenda.adq.ExecSQL; agenda.adq.Close ;
|
|
|
|
lundi 16 avril 2007 à 14:07:06 |
Re : pb date différente une fois dans la base de donnéee

yotamanga
|
"Aussi, dans ton insert, essaye juste de remplace formatDateTime par DateToStr.(au cas ou c'est un problème de format régional)" , cela ne mache pas nan plus.
Pour mon champ date_injection : types de données : date/heure format :date, abrégeée -19/04/1994 apres je pense que c 'est pour le stockage enfin je ne m y connais pas en access j suis plus php/mysql ^^
Pour le test d'affichage : agenda.date.DateTime := now; agenda.infooj.Caption := jour[DayOfWeek(agenda.date.DateTime)]+' '+DateToStr(agenda.date.DateTime);
j'essaie de me debrouiller avec parameter mais je suis pas doué >_< mais un grand merci pour vos réponses.
|
|
|
|
lundi 16 avril 2007 à 15:18:48 |
Re : pb date différente une fois dans la base de donnéee

Loda
|
re,
ton code de test d'affichage m'as l'air correct...
je vois pas. dsl. essai de chager tes format de date sous access.
sinon les parametres, en deux mots: -c'est une list de variant nommées - tu les accede par nom (le plus facile je pense) - tu dois les ajouter à la list avant de faire la requete. (createParam) - Ils restent dans la lit de param jusqu'a que tu les effaces. (inutile de les crée à chque requete) - cela permet (souvent) de conserver la requete sql ("insert ....") (vu que les partie changeante sont justement les parametres)
a+,
Loda
Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
|
|
|
Cette discussion est classé dans : base, date, agenda, injection, adq
Répondre à ce message
Sujets en rapport avec ce message
MonthCalendar [ par yannba ]
Savez-vous coment à partir d'une base de donnée access, je peux cocher dans mon composant la "cellule". Je m'explique : Dans ma base de donnée, j'ai p
comparaison de deux date dans une base de donnée [ par HAFTARIFOUAD ]
Bonjour tt le monde ;-) <font face
DATE SYSTEM [ par spacemiomio ]
salut a tous petite question a 2 balle :est t'il possible de recuperer l'heure systeme d 'un pc sur un reseaux en connaisant son adresse genre : //mon
actualisation automatique du code dans une base de donnée [ par silla ]
salut à tous j'ai un problème pour actualiser un code dans une table achat(code; date; heure; code-section;piece)en effet le code à la forme suivantec
Probleme de selection [ par reysoft ]
bonjourje veux selectionné les factures de chaque societe et chaque mois (entre 2 dates) Query1.SQL.Clear; Query1.SQL.Add('Select * from table1'
Partager une base de donnée [ par chance2000 ]
bonjour, voila je suis débutant dans la programmation delphi, j'ai crée une petite application sous delphi avec un SGBD paradox je veux savoir comment
tri par base ou radix [ par zwyx ]
Bonjour à tous,Je souhaite développer un algorithme de tri par base, ou tri radix. En effet, d'après ce que j'ai lu, il semble assez performant. Mais
extraire le moi ou annee d'une date longe [ par dhsofa ]
bonjour, j'ai un code qui donne le moi et l'annee d'une date longue exemple (10/11/2008)ce code est ecrit en clipper, est vous pouvez m'aidez de trans
Etre a 2 - base sql - hostarea [ par cyber37 ]
Salut a tous,J'ai fait un logitiel de pointage recement, qui permet de pointter les membres qui sonts venue a un entrainnement (sur bf) et il fonction
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|