Dans certaines de mes tables, il y a des dates à '01/01/0001'...
J'ai besoin de tranférer des données d'un TDataSet à un autre... Pour cela, je fais donc une boucle du genre :
Là, erreur lorsque l'on passe sur une date à '01/01/0001'. Le message est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 For i:= 0 to FieldCount -1 Do Tb.Fields[i] := Fields[i];
puisLe projet a provoqué une classe d'exception EVariantOverFlowError avec le message 'Débordement lors de la conversion du variant de type (date)'
Pour isoler mon cas, j'ai créé un projet avec une zone de saisie DBEdit sur une table créé pour l'occasion, ne contenant qu'une zone date.Valeur incorrecte pour le champ DATE
Et effectivement, lorsque je saisie '01/01/0001' et que je tente d'alimenter la table, même plantage...
Pour une meilleure compréhension, voici le code :
Y'aurait-il un paramêtrage à faire ou autre pour palier à ce problème ?
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 type TForm1 = class(TForm) BtnOpenInsert: TButton; BtnPost: TButton; DataSource1: TDataSource; DBEdit1: TDBEdit; Table1: TTable; procedure BtnPostClick(Sender: TObject); procedure BtnOpenInsertClick(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.BtnPostClick(Sender: TObject); begin with Table1 do begin Fields[1] := DBEdit1.Field; // ****PLANTAGE ICI !!!!!!!! **** Post; Close; end; end; procedure TForm1.BtnOpenInsertClick(Sender: TObject); begin with Table1 do begin Open; Insert; end; end;
Merci d'avance pour votre aide !!!
Partager