Bonjour,

Voila je développe un système qui enregistre toutes les heures des données dans une BD Access 97. Dans la table PAC il y a 4 champs :

Autonumber
Date/Time Nom=Date
Number Nom=HC
Number Nom=HP

En Delphi j'essai d'ajouter l'information, alors je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
with ADOQuery do begin
    SQL.Add('SELECT * From PAC');
    Connection:=ADOConnection;
    CursorLocation:= clUseClient;
    LockType:= ltOptimistic;
    CursorType:=ctStatic;
    Active:=true;
    Insert;
    FieldByName('Date').Value:=DateTimeForSQL(GetTime());
    FieldByName('HC').Value:=4444;
    FieldByName('HP').Value:=1967;
    Post;
  end;
Avec

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
function DateTimeForSQL(const dateTime : TDateTime) : string;
var
  y, m, d : word;
  hour, min, sec, msec : word;
begin
  DecodeDate(dateTime, y, m, d) ;
  DecodeTime(dateTime, hour, min, sec, msec) ;
 
  result := Format('#%.*d-%.*d-%.*d %.*d.%.*d.%.*d#',[4, y, 2, m, 2, d, 2, hour, 2, min, 2, sec]) ;
end;
Mais a l'exécution il me met :

Could not convert variant of type (String) into type (Date). Par contre quand je mets GetTime() a la place de DateTimeForSQL(GetTime()) ça marche. Mais ce que je veux qu'il apparaisse dans le champ date c'est une date de la forme dd/mm/yy hh:mm:ss

Je ne comprends pas comment je peux faire.

Merci de votre aide

Denis