Bonjour a tous.
Je me retrouve coincé une fois encore :
L'erreur suivante :survient lorsque j'utilise une fonction qui vide une table et qui la remplie avec de nouveaux élements.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Le projet ProjectName.exe a provoqué une classe d'exception EDBEngineError avec le message 'violation de clé'.
Aparement c'est un problem de clé, je suppose que cela implique l'index! Mais je ne comprend pas pourquoi.
Mes deux tables ont le meme champ d'indexé qui est : N
Voici le code utilisé
D'avance merci pour vos bonnes idees
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
45
46
47
48
49
50
51
52
53
54
55 procedure fill(var a,b:Ttable); begin a.DisableControls; b.DisableControls; a.First; While not a.Eof do begin a.Edit; a.Delete; end; b.first; while not b.Eof do begin a.insert; a.FieldByName('N').value:= b.FieldByName('N').value; a.FieldByName('Open time').value:= b.FieldByName('Open time').value; a.FieldByName('Name').value:= b.FieldByName('Name').value; a.FieldByName('ID').value:= b.FieldByName('ID').value; a.FieldByName('Member').value:= b.FieldByName('Member').value; a.FieldByName('Location').value:= b.FieldByName('Location').value; a.FieldByName('Assignement').value:= b.FieldByName('Assignement').value; a.FieldByName('None').value:= b.FieldByName('None').value; a.FieldByName('Current').value:= b.FieldByName('Current').value; a.Post; //L'erreur survient ici !!!!!!!!!!!!!! b.next; end; b.EnableControls; a.EnableControls; end; procedure TForm1.PageControl2Change(Sender: TObject); begin case PageControl2.ActivePageIndex of 0: begin Topen.Filter:= 'Assignement =' +quotedstr('Active'); Topen.Filtered:=true; fill(Tdeal,Topen); end; 1: begin Topen.Filter:= 'Assignement =' +quotedstr('NoActive'); Topen.Filtered:=true; fill(Tdeal,Topen); end; 2: begin Topen.Filter:= 'None =' +quotedstr('yes'); Topen.Filtered:=true; fill(Tdeal,Topen); end; 3: begin Topen.filtered:= false; fill(Tdeal,Topen); end; end; end;
Partager