Bonjour,
Pour une petite application , j'utilise des fichiers locaux (cds) via le composant TSimpleDataSet .
Je crée le fichier de cette manière :
et le remplit généralement par code, à l'occasion les quantités (Champs QT1-QT24 sont modifiées) via un DbCtrlGrid. Jusque là pas de difficultés.
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 with Etodo do begin try Active:=False; except end; if FileExists(EFile.Text) then DeleteFile(EFile.Text); try Active:=True; EmptyDataSet; except with FieldDefs do begin Clear; Add('NUMART',ftString,10,true); //EAN modele+Coloris Add('NOM',ftString,30,true); for i := 1 to 24 do begin Add('PT'+inttostr(i),ftString,3,false); Add('QT'+inttostr(i),ftInteger,0,false); end; Add('PRIX',ftCurrency,0,false); add('NOMDA',ftString,80,false); end; CreateDataSet; Active:=True; with IndexDefs do begin AddIndex('PKNUM','NOMDA',[ixPrimary]); end; SaveToFile; end; end;
Un DbNavigator permet de naviguer au sein du fichier. Je n'avais jusque là pas utilisé le (-) de ce dernier et là, ça coince !
Si je clique dessus (exécution en mode debug) j'ai un joli ding-dong, pas de message d'erreur et plantage du programme !
J'ai essayé de passer un message avec le BeforeDelete : ça se passe avant !
J'ai essayé de vérifier lors de l'utilisation du bouton
même chose cela se passe avant !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DBNavigator1Click(Sender: TObject; Button: TNavigateBtn); begin if Button=nbDelete then Showmessage('nav : '+EtodoNOMDA.Value);
Moralité, j'ai raté quelque chose (certainement au niveau du SimpleDataSet), mais quoi ?
Partager