Mensen,
Wanneer ik een simpel databaseje maak door middel van records, zo dus:
En ik wil daar nu bijvoorbeeld 'klantnr' 2 iets veranderen dan doe ik dat op deze manier waarbij het foutgaat:
Save_Klnt_Geg:
Want wat gebeurd er nu. Hij leest de record, veranderd de record en plakt het achter aan de rij vast. Dus dan heb je zeg maar 2 dezelfde records maar bij 1 is dus hetgeen veranderd wat je wilde veranderen.
Het punt is nu dat ie dus geen duplicatie moet maken van de record maar gewoon het hele record wat veranderd moet worden overschrijft!
Hoe kan ik dit handig op lossen?
Wanneer ik een simpel databaseje maak door middel van records, zo dus:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| AssignFile (Klnt_lst_best, Klnt_lst_bestnaam);
Reset (Klnt_lst_best);
Aantal := FileSize (Klnt_lst_best);
Seek (Klnt_lst_best, Aantal);
with Klanten_lijst do begin
Klantnr := Edit1.Text;
Naam := Edit2.Text;
Adres := Edit3.Text;
Postcode := Edit4.Text;
Plaats := Edit5.Text;
Telnr := Edit6.Text;
Faxnr := Edit7.Text;
Email := Edit8.Text;
end;
Write (Klnt_lst_best, Klanten_lijst); |
En ik wil daar nu bijvoorbeeld 'klantnr' 2 iets veranderen dan doe ik dat op deze manier waarbij het foutgaat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| AssignFile (Klnt_lst_best, Klnt_lst_bestnaam);
Reset (Klnt_lst_best);
a := -1;
While not eof (Klnt_lst_best) do begin
read (Klnt_lst_best, Klanten_Lijst);
a := a + 1;
If Klanten_Lijst.Klantnr = Edit1.Text
Then Begin
Reset (Klnt_lst_best);
Seek (Klnt_lst_best, a);
Save_Klnt_Geg (Klanten_Lijst);
Write (Klnt_lst_best, Klanten_Lijst);
end;
end; |
Save_Klnt_Geg:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| Procedure Save_Klnt_geg(Klanten_Lijst : TKlanten_Lijst);
Begin
With Klanten_Lijst do begin
Klantnr := Form1.Edit1.Text;
Naam := Form1.Edit2.Text;
Adres := Form1.Edit3.Text;
Postcode := Form1.Edit4.Text;
Plaats := Form1.Edit5.Text;
Telnr := Form1.Edit6.Text;
Faxnr := Form1.Edit7.Text;
Email := Form1.Edit8.Text;
end;
End; |
Want wat gebeurd er nu. Hij leest de record, veranderd de record en plakt het achter aan de rij vast. Dus dan heb je zeg maar 2 dezelfde records maar bij 1 is dus hetgeen veranderd wat je wilde veranderen.
Het punt is nu dat ie dus geen duplicatie moet maken van de record maar gewoon het hele record wat veranderd moet worden overschrijft!
Hoe kan ik dit handig op lossen?