Freigeben über


TABLEREVERT( )-Funktion

Macht Änderungen rückgängig, die an einer gepufferten Zeile oder an einer gepufferten Tabelle oder an einem Cursor vorgenommen wurden, und stellt für Remotecursor die OLDVAL( )-Daten, für lokale Tabellen und Cursor die aktuell auf dem jeweiligen Datenträger befindlichen Werte wieder her.

TABLEREVERT([lAllRows [, cTableAlias | nWorkArea]])

Rückgabewerte

Numerisch

Parameter

  • lAllRows
    Legt fest, ob alle an der Tabelle oder dem Cursor vorgenommenen Änderungen rückgängig gemacht werden sollen. Wenn lAllRows gleich Wahr (.T.) und Tabellenpufferung aktiv ist, werden alle an den Datensätzen der Tabelle oder des Cursors vorgenommenen Änderungen rückgängig gemacht. Wenn lAllRows gleich Falsch (.F.) und Tabellenpufferung aktiv ist, werden nur Änderungen rückgängig gemacht, die am aktuellen Datensatz der Tabelle oder des Cursors vorgenommen wurden.

    Wenn die Zeilenpufferung aktiv ist, wird der Wert von lAllRows ignoriert, und die am aktuellen Datensatz in der Tabelle oder dem Cursor vorgenommenen Änderungen werden rückgängig gemacht.

    Der Standardwert für lAllRows ist Falsch (.F.).

  • cTableAlias
    Gibt den Alias der Tabelle oder des Cursors an, in der bzw. in dem die Änderungen rückgängig gemacht werden.

  • nWorkArea
    Gibt den Arbeitsbereich der Tabelle oder des Cursors an, in der bzw. in dem die Änderungen rückgängig gemacht werden.

Hinweise

TABLEREVERT( ) gibt die Anzahl von Datensätzen zurück, für die Änderungen rückgängig gemacht wurden.

Anmerkung   In einem Netzwerk können sich die aktuell auf dem Datenträger vorhandenen Daten von den Daten unterscheiden, die sich auf dem Datenträger befanden, als die Tabelle geöffnet oder der Cursor erstellt wurde. Andere Benutzer im Netzwerk können die Daten geändert haben, nachdem die Tabelle geöffnet oder der Cursor erstellt wurde.

TABLEREVERT( ) kann Änderungen an einer Tabelle oder einem Cursor nicht rückgängig machen, wenn weder Zeilen- noch Tabellenpufferung aktiviert sind. Wenn Sie TABLEREVERT( ) eingeben und weder Zeilen- noch Tabellenpufferung aktiviert sind, generiert Visual FoxPro eine Fehlermeldung. Verwenden Sie CURSORSETPROP( ) zum Aktivieren und Deaktivieren der Zeilen- und Tabellenpufferung.

Ist TABLEREVERT( ) ohne das optionale Argument cTableAlias bzw. nWorkArea angegeben, werden Änderungen rückgängig gemacht, die an der Tabelle bzw. dem Cursor vorgenommen wurden, die bzw. der im aktuell ausgewählten Arbeitsbereich geöffnet ist.

TABLEREVERT( ) führt den Datensatzzeiger nicht in seine ursprüngliche Position zurück.

Beispiel

Das folgende Beispiel zeigt, wie TABLEREVERT( ) verwendet wird, um Änderungen an einer gepufferten Tabelle rückgängig zu machen. Als Notwendigkeit für die Tabellenpufferung wird MULTILOCKS auf ON gesetzt. Die Tabelle customer der Datenbank testdata wird geöffnet, und der Zwischenspeicherungsmodus wird durch CURSORSETPROP( ) auf "5 - Optimistische Tabellenpufferung" gesetzt.

Der Wert des Feldes cust_id wird zunächst angezeigt und dann mit REPLACE verändert. Danach wird der neue Wert des Feldes cust_id angezeigt. Mit TABLEREVERT( ) wird dann die Tabelle in ihren ursprünglichen Zustand zurückversetzt (TABLEUPDATE( ) könnte stattdessen die Änderungen übergeben). Danach wird der rückgängig gemachte Wert des Feldes cust_id angezeigt.

CLOSE DATABASES
SET MULTILOCKS ON  && Must be on for table buffering
SET PATH TO (HOME(2) + 'data\')     && Sets path to database
OPEN DATABASE testdata  && Open testdata database
USE Customer     && Open customer table
= CURSORSETPROP('Buffering', 5, 'customer')  && Enable table buffering

CLEAR
? 'Original cust_id value: '
?? cust_id  && Displays current cust_id value
REPLACE cust_id    WITH '***'  && Changes field contents
? 'New cust_id value: '
?? cust_id  && Displays new cust_id value
= TABLEREVERT(.T.)  && Discard all table changes
? 'Reverted cust_id value: '
?? cust_id  && Displays reverted cust_id value

Siehe auch

CURSORSETPROP( ) | CURVAL( ) | OLDVAL( ) | TABLEUPDATE( )