Compartir a través de


CURVAL( ) (Función)

Devuelve valores de campo directamente desde disco para una tabla o un origen de datos remoto.

CURVAL(cExpression [, cTableAlias | nWorkArea])

Valores devueltos

Character, Currency, Date, DateTime, Double, Float, Logical, Numeric o Memo

Parámetros

  • cExpression
    Especifica una expresión cuyo valor devuelve CURVAL( ) a partir de una tabla o un origen de datos remoto. cExpression suele ser un campo o una expresión que contiene un conjunto de campos de la tabla o del origen de datos remoto.
  • cTableAlias
    Especifica, para una tabla o un origen de datos remoto, el alias de la tabla desde la cual se devuelve el valor del campo almacenado en disco.
  • nWorkArea
    Especifica, para una tabla o un origen de datos remoto, el área de trabajo de la tabla desde la cual se devuelve el valor del campo almacenado en disco.

Observaciones

Los valores de campo que devuelven CURVAL( ) y OLDVAL( ) pueden compararse para determinar si otro usuario de la red ha cambiado los valores de campo mientras se modificaban los campos. CURVAL( ) y OLDVAL( ) sólo pueden devolver valores distintos cuando está activo el almacenamiento optimista de filas o tablas en búfer. El almacenamiento optimista de filas o tablas en búfer se activa con CURSORSETPROP( ).

Nota   Si está trabajando con una vista en un entorno de varios usuarios, es posible que los valores devueltos por CURVAL( ) no estén actualizados a no ser que haya llamado antes a la función REFRESH( ). Los datos devueltos por una vista se almacenan en búfer y la función CURVAL( ) lee valores desde el búfer. De todas formas, si hay otros usuarios que han modificado datos en las tablas subyacentes para la vista, los datos almacenados en búfer no se actualizarán hasta que se llame a la función REFRESH( ).

CURVAL( ) devuelve valores de campo para el registro actual y el tipo de datos del valor devuelto se determina por la expresión especificada con cExpression.

Se devuelve el valor para la tabla o el cursor abierto en el área de trabajo seleccionada actualmente si se ejecuta CURVAL( ) sin los argumentos opcionales cTableAlias o nWorkArea.

Ejemplo

Este ejemplo crea una tabla libre llamada mytable y se inserta un valor “One” en el campo cDigit. Se activa el almacenamiento optimista de tablas en búfer con SET MULTILOCKS ON y CURSORSETPROP( ).

Después se inserta un valor "Two" en el campo cDigit, y se usan CURVAL( ) y OLDVAL( ) para mostrar los valores originales de cDigit. TABLEUPDATE( ) se utiliza para grabar los cambios a la tabla, y CURVAL( ) y OLDVAL( ) se usan para mostrar los nuevos valores de cDigit. Debido a que se trata de un ejemplo para un solo usuario, CURVAL( ) y OLDVAL( ) devuelven valores idénticos.

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")

Vea también

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