Bonjour à tous,
vu que je n'ai pas eu de réponse sur le forum Delphi et base de données,
je repost mon problème ici :
mon application met à jour la base Oracle (version 8i) avec le composant TUpdateSql.
Dans le composant TwwDBDateTimePicker, on affiche la date d'invalidité d'un assuré, mais lorsque celle ci est nulle, après la mise à jour du record, la date prend une valeur indéterminée.

Voici le code de chargement du record :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
          //Recherche de l'assuré
          with dmo_Tables_AC.qry_Ac_Assure do
          begin
 
              Close;
              ParamByName('no_avs').AsString    := Assure_Modifie;
              Active := true;
              CachedUpdates := true;
              Edit;
              //Valeur Enregistrement Visa + date
              FieldByName('ID_UPD').ReadOnly    := false;
              FieldByName('DT_UPD').ReadOnly    := false;
              FieldByName('ID_UPD').AsString    := dmo_Tables_AC_Sortie.LocalUser_Connected.Visa;
              FieldByName('DT_UPD').AsDateTime  := Date;
              //Champs qui ne peuvent être modifié par l'utilisateur
              FieldByName('NO_AVS').ReadOnly    := true;
              FieldByName('ID_CRE').ReadOnly    := true;
              FieldByName('DT_CRE').ReadOnly    := true;
              FieldByName('ID_UPD').ReadOnly    := true;
              FieldByName('DT_UPD').ReadOnly    := true;
 
              //Attribution du datasource aux champs du panel Détail - Bénéficiaire
              AcorDataSource              := dmo_Tables_AC.ds_Ac_Assure;
 
              try
 
                Application.CreateForm(Tfm_Detail_Assure, fm_Detail_Assure);
                fm_Detail_Assure.Attribution_DataSource_Assure(AcorDataSource);;
                fm_Detail_Assure.Modification_En_cours := True;
                fm_Detail_Assure.Caption := 'Modification de l''assuré : ' + FormatMaskText('999\.99\.999\.999;0;_', FieldByName('NO_AVS').AsString);
                fm_Detail_Assure.ShowModal;
 
              finally
 
                fm_Detail_Assure.Free;
                Close;
                CachedUpdates   := False;
                ParamByName('no_avs').AsString := Assure_Modifie;
                Open;
 
              end;//try
 
          end;//with dmo_Tables_AC.qry_Ac_Assure

et de la mise à jour de l'enregistrement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
            Database.StartTransaction;
            try
                ApplyUpdates;
                Database.commit;
                CommitUpdates;
                CachedUpdates := false;
            except
                Database.Rollback;
                Probleme_Validation := True;
                CachedUpdates := false;
            end;//try
Ma supposition est que le cache n'est pas réinitialisé correctement, avez vous d'autres suggestions ?
Merci d'avance pour toutes vos réponses.