![]() |
Records löschen
Hi,
ich habe mal wieder eine Frage zu den Records: Wie kann ich einzelne Datensätze eines Records löschen? Zum Beispiel habe ich eine Datenbank mit Rezepten. Nun mag ich das eine nicht mehr haben und es aus der Datenbank von ca 100 löschen. Wie kann ich nun das Rezept so entfernen, dass ich keinen leeren Datensatz habe, sondern dass das Record vollständig entfernt wird und dann die kommenden alle eins aufrücken? Danke im Vorraus |
Re: Records löschen
du rückst einfach in ner schleife, die restlichen nach.
|
Re: Records löschen
ja, aber meine eigentlich Frage ist, wie ich ein speziellen Eintrag eines Records löschen kann. Ich habe damit noch kaum gearbeitet. Sorry für diese evtl. Anfängerfrage.
Wäre trotzdem cool, wenn ihr mir antworten könntet.. Bye |
Re: Records löschen
Wenn die Reihenfolge keinen Rolle spielt kannst du auch den zu löschenden Eintrag mit dem Letzten vertauschen und dann die Länge des Array um 1 verkleinern.
|
Re: Records löschen
hi,
wie würde das funktionieren? |
Re: Records löschen
Hi DJ-SPM,
nimm einfach eine Table Komponente. Den aktiven Datensatz kannst Du dann mit
Code:
löschen. Der Datensatz ist dann weg. Wenn Du allerdings eigene laufende Nummern in einem Feld geführt hast, hast du dabei eine Lücke. Du müsstest dann eine Reorganisation durchführen.
MyForm.MyTable.Delete;
grüsse hacki |
Re: Records löschen
Danke erstmal,
aber was ist eine "Label-Komponente"? :?: |
Re: Records löschen
Keine LABEL - Komponente sondern eine TABLE - Komponente ! Ein Objekt vom Typ TTABLE !!
Wie hast Du die Datenbank denn erstellt ? Hast du keine Table Komponenten verwendet ? |
Re: Records löschen
Hier mal ein Beispiel zu Records. Es wird nur eine Memo-Komonente zur Ausgabe des Array benötigt.
Delphi-Quellcode:
procedure TForm1.Button19Click(Sender: TObject);
type TEntries = record text: string; end; var a : Array of TEntries; i : Integer; begin SetLength(a, 5); // array füllen for i := low(a) to high(a) do a[i].text := Format('Eintrag: %d', [i]); // Testausgabe in memo for i := low(a) to high(a) do Memo1.Lines.Add(a[i].text); // Eintrag 3 löschen a[3] := a[high(a)]; SetLength(a, 4); // Testausgabe in memo, diesmal fehlt der Eintrag 3 for i := low(a) to high(a) do Memo1.Lines.Add(a[i].text); end; |
Re: Records löschen
War vielleicht der falsche Ausdruck. Es ist keine Datenbank sondern ein Record...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz