Löschen von Datensätzen
Datensätze löschen Sie, indem Sie sie erst zum Löschen markieren und dann die gelöschten Datensätze entfernen. Bis Sie die zum Löschen markierten Datensätze entfernen, bleiben diese weiterhin auf dem Datenträger gespeichert. Ihre Löschmarkierung kann aufgehoben und sie können wiederhergestellt werden. Dieser Abschnitt beschreibt, wie Sie Datensätze zum Löschen markieren, ihre Löschmarkierung wieder aufheben und Datensätze endgültig aus Ihrer Tabelle entfernen.
Markieren von Datensätzen zum Löschen
Sie können Datensätze entweder auf der Benutzeroberfläche oder mit dem DELETE - SQL-Befehl zum Löschen markieren.
So markieren Sie einen Datensatz zum Löschen
Klicken Sie in einem Datenblattfenster auf die Löschmarkierung, um den zu löschenden Datensatz zu kennzeichnen.
- Oder -
Klicken Sie im Menü Tabelle auf Datensätze löschen.
- Oder -
Verwenden Sie den DELETE - SQL-Befehl.
Mit dem DELETE - SQL-Befehl können Sie einen Bereich von Datensätzen sowie eine auf einem logischen Ausdruck basierende Bedingung angeben, die Datensätze erfüllen müssen, damit sie zum Löschen markiert werden. Beispielsweise markiert der folgende Code alle Datensätze mit "T" im Feld Discontinu
der Tabelle products
zum Löschen:
USE products
DELETE FROM products WHERE discontinu = .T.
BROWSE
Sie können auch eine Gruppe von Datensätzen zum Löschen auswählen, indem Sie im Dialogfeld Datensatz löschen Bedingungen setzen. Wählen Sie zum Eingeben von Löschbedingungen aus dem Menü Tabelle den Befehl Datensätze löschen.
Wählen Sie aus dem Kombinationsfeld Bereich den Bereich der zu löschenden Datensätze aus.
Wenn Sie eine Reihe von zu löschenden Datensätzen beschreiben können, können Sie auf der Basis dieser Beschreibung einen Ausdruck erstellen. Wählen Sie die Schaltfläche FOR, um den Ausdruck-Generator zu öffnen und einen Ausdruck zu erstellen. Beispielsweise werden mit Hilfe des Ausdrucks FOR Country = 'Großbritannien' alle Datensätze aus Großbritannien ausgewählt und zum Löschen markiert.
Datensätze, die Sie zum Löschen markieren, werden physisch erst vom Datenträger gelöscht, wenn Sie den PACK-Befehl ausführen. Wenn Sie die Tabelle im Datenblattfenster anzeigen, sehen Sie, dass jeder gelöschte Datensatz mit der Löschmarkierung gekennzeichnet ist. Falls SET DELETED auf OFF gesetzt ist, bleibt der Datensatz in der Tabelle jedoch weiterhin sichtbar. Ist SET DELETED dagegen auf ON gesetzt, werden die zum Löschen markierten Datensätze aus dem Datenblattfenster entfernt.
Die Einstellung des SET DELETED-Befehls wirkt sich auch darauf aus, ob Befehle, die Operationen an Datensätzen durchführen, auf zum Löschen markierte Datensätze zugreifen können.
Zurückrufen von Datensätzen, die zum Löschen markiert wurden
Sie können die Markierung von Datensätzen, die zum Löschen markiert wurden, mit dem RECALL-Befehl wieder aufheben. Der RECALL-Befehl kann Datensätze nur dann wiederherstellen, wenn Sie nicht einen der Befehle PACK oder ZAP ausgegeben haben, der die Datensätze physisch aus der Tabelle löscht.
So heben Sie die Löschmarkierung eines Datensatzes auf
Klicken Sie in einem Datenblattfenster auf die Löschmarkierung, um die Markierung des Datensatzes aufzuheben.
- Oder -
Klicken Sie im Menü Tabelle auf Löschen rückgängig.
- Oder -
Verwenden Sie den RECALL-Befehl.
Mit dem RECALL-Befehl können Sie einen Bereich von Datensätzen sowie eine auf einem logischen Ausdruck basierende Bedingung angeben, die Datensätze erfüllen müssen, damit ihre Löschmarkierung wieder aufgehoben wird. Beispielsweise hebt der folgende Code die Löschmarkierung aller Datensätze mit "T" im Feld discontinu
der Tabelle products
auf:
USE products
RECALL FOR discontinu = .T.
BROWSE
Wenn Sie sich die Tabelle im Datenblattfenster anschauen, sehen Sie, dass die Datensätze nicht mehr mit der Löschmarkierung gekennzeichnet sind.
Entfernen von Datensätzen, die zum Löschen markiert wurden
Nachdem Sie Datensätze zum Löschen markiert haben, können Sie sie entweder in der Benutzeroberfläche oder mit der Sprache endgültig vom Datenträger entfernen.
So entfernen Sie zum Löschen markierte Datensätze vom Datenträger
Klicken Sie in einem Datenblattfenster im Menü Tabelle auf Markierte Datensätze entfernen.
Antworten Sie durch Wählen von Ja auf die Frage, ob Sie die gelöschten Datensätze aus der Tabelle entfernen möchten.
- Oder -
- Verwenden Sie den PACK-Befehl.
Für den PACK-Befehl gibt es zwei Klauseln: MEMO und DBF. Wenn Sie PACK ohne die Klausel MEMO oder DBF ausgeben, werden Datensätze sowohl in der Tabellendatei als auch in der dazugehörigen Memodatei entfernt. Stellen Sie dabei sicher, dass nur Sie Zugriff auf die Tabelle haben. Beispielsweise entfernt der folgende Code Datensätze, die zum Löschen markiert wurden:
USE customer EXCLUSIVE
PACK
Wenn Sie Datensätze nur in der Tabellendatei löschen und die Memodatei unverändert beibehalten möchten, verwenden Sie PACK DBF.
Speicherplatz sparen
Die Informationen in Memofeldern von Tabellen werden in einer dazugehörigen Memodatei unter demselben Namen wie die Tabelle gespeichert. Diese Datei hat die Erweiterung FPT. Wenn Sie nichtbelegten Speicherplatz aus der Memodatei entfernen, jedoch Datensätze, die zum Löschen markiert sind, nicht entfernen möchten, geben Sie den PACK-Befehl mit der MEMO-Klausel aus. Stellen Sie dabei sicher, dass Sie exklusiven Zugriff auf die Tabelle haben.
Entfernen aller Datensätze aus einer Tabelle
Wenn Sie alle Datensätze aus einer Tabelle entfernen und nur die Tabellenstruktur beibehalten möchten, können Sie den ZAP-Befehl verwenden. ZAP hat die gleiche Wirkung wie DELETE ALL und PACK, ist jedoch wesentlich schneller. Stellen Sie dabei sicher, dass nur Sie Zugriff auf die Tabelle haben.
Vorsicht Datensätze, die aus der aktuellen Tabelle mit ZAP entfernt wurden, können nicht zurückgeholt werden.
Siehe auch
Hinzufügen von Datensätzen | Indexerstellung für Tabellen | Arbeiten mit Datensätzen | DELETE - SQLDatenblattfensterPACK | SET DELETED | RECALL | Ordnen nach mehreren Feldern