Freigeben über


CURVAL( )-Funktion

Ruft die Werte einer Tabelle oder einer Remotedatenquelle direkt vom Datenträger ab.

CURVAL(cExpression [, cTableAlias | nWorkArea])

Rückgabewerte

Zeichen, Währung, Datum, DatumZeit, Double, Gleitkomma, Logisch, Numerisch oder Memo

Parameter

  • cExpression
    Gibt einen Ausdruck an, dessen Wert CURVAL( ) aus einer Tabelle oder einer Remotedatenquelle ermittelt. cExpression ist typischerweise ein Feld oder ein aus einer Menge von Feldern gebildeter Ausdruck, wobei die Felder aus einer Tabelle oder einer Remotedatenquelle stammen.
  • cTableAlias
    Gibt den Alias der Tabelle an, deren Feldwerte für eine Tabelle oder eine Remotedatenquelle vom Datenträger gelesen werden.
  • nWorkArea
    Gibt den Arbeitsbereich der Tabelle an, deren Feldwerte für eine Tabelle oder eine Remotedatenquelle vom Datenträger abgerufen werden.

Hinweise

Durch CURVAL( ) und OLDVAL( ) ermittelte Feldwerte können miteinander verglichen werden, um zu bestimmen, ob die Feldwerte in der Zwischenzeit durch einen anderen Benutzer des Netzwerks geändert wurden. CURVAL( ) und OLDVAL( ) können nur dann unterschiedliche Werte liefern, wenn die optimistische Zeilen- oder Tabellenpufferung aktiviert ist. Die optimistische Zeilen- oder Tabellenpufferung kann mit CURSORSETPROP( ) aktiviert werden.

Anmerkung   Wenn Sie in einer Mehrbenutzerumgebung mit einer Sicht (Ansicht) arbeiten, sind die durch CURVAL( ) ermittelten Werte möglicherweise nicht aktuell, wenn Sie nicht zuvor die REFRESH( )-Funktion aufgerufen haben. Die von einer Sicht gelieferten Daten werden gepuffert, und die CURVAL( )-Funktion liest die Werte aus dem Puffer. Haben jedoch in der Zwischenzeit andere Benutzer Daten in den Tabellen geändert, auf denen die Sicht basiert, so werden die gepufferten Daten erst beim Aufruf der REFRESH( )-Funktion aktualisiert.

CURVAL( ) ermittelt Feldwerte für den aktuellen Datensatz; der Datentyp des Rückgabewertes wird durch den in cExpression spezifizierten Ausdruck bestimmt.

Wenn CURSORGETPROP( ) ohne die optionalen Argumente cTableAlias oder nWorkArea eingegeben wird, wird der Wert für die Tabelle oder den Cursor zurückgegeben, der im aktuellen Arbeitsbereich geöffnet ist.

Beispiel

In diesem Beispiel wird eine freie Tabelle namens mytable erstellt und in das Feld cDigit der Wert "One" eingetragen. Mittels SET MULTILOCKS ON und CURSORSETPROP( ) wird die optimistische Tabellenpufferung aktiviert.

Anschließend wird in das Feld cDigit der Wert "Two" eingetragen und der aktuelle und der ursprüngliche Wert des Feldes mittels CURVAL( ) und OLDVAL( ) angezeigt. Die Änderungen an der Tabelle werden mit TABLEUPDATE( ) realisiert, der neue Wert des Feldes wird mittels CURVAL( ) und OLDVAL( ) angezeigt. Da es sich hier um ein Ein-Benutzer-Beispiel handelt, geben CURVAL( ) und OLDVAL( ) stets die gleichen Werte zurück.

CLOSE DATABASES
CLEAR

CREATE TABLE mytable FREE (cDigit C(10)) 
* Store original value
INSERT INTO mytable (cDigit) VALUES ("One")
SET MULTILOCKS ON        && Allow optimistic table buffering
= CURSORSETPROP("Buffering",5)   && Optimistic table buffering on
REPLACE cDigit WITH "Two"    && New value

? "Current value: " + CURVAL("cDigit", "mytable")
? "Old value: " + OLDVAL("cDigit", "mytable")
= TABLEUPDATE(.T.)       && Commit changes made to table
? "Table changes committed"
? "New current value: " + CURVAL("cDigit", "mytable")
? "New old value: " + OLDVAL("cDigit", "mytable")

Siehe auch

GETFLDSTATE( ) | OLDVAL( ) | TABLEREVERT( ) | TABLEUPDATE( ) | CURSORSETPROP( )