Share via


CURSORSETPROP( ) (Función)

Especifica la configuración de propiedad para una tabla o un cursor de Visual FoxPro.

CURSORSETPROP(cProperty [, eExpression] [, cTableAlias | nWorkArea])

Valores devueltos

Logical

Parámetros

  • cProperty
    Especifica la propiedad de la tabla o el cursor que se va a establecer. Observe que Buffering es la única propiedad que puede especificar para una tabla de Visual FoxPro.

  • eExpression
    Especifica el valor de la propiedad que especifica con cProperty. Si omite eExpression, se establece el valor predeterminado de la propiedad.

    La tabla siguiente muestra las propiedades que pueden especificarse para cProperty y una descripción de los valores que puede adoptar eExpression.

    Propiedad Configuración de eExpression
    BatchUpdateCount* El número de instrucciones de actualización enviadas al origen de datos para tablas almacenadas en búfer. 1 es el valor predeterminado. Ajustar este valor puede aumentar considerablemente el rendimiento.
    Almacenamiento en búfer 1 – Desactiva el almacenamiento de filas y tablas en búfer. El bloqueo de registros y la escritura de datos son idénticos que en versiones anteriores de FoxPro. (Valor predeterminado).

    2 – Activa el almacenamiento pesimista de filas en búfer.

    3 – Activa el almacenamiento optimista de filas en búfer.

    4 – Activa el almacenamiento pesimista de tablas en búfer.

    5 - Activa el almacenamiento optimista de tablas en búfer. SET MULTILOCKS debe establecerse en ON para todos los modos de Buffering salvo 1 (desactivado).

    CompareMemo .T. - Los campos memo (de tipo Memo, General o Picture) se incluyen en la cláusula WHERE para actualizaciones..F. – Los campos Memo no se incluyen en la cláusula WHERE para actualizaciones.
    FetchAsNeeded .T. – Se buscan los registros necesarios..F. – Para las vistas remotas, el número de registros que se buscan está determinado por la propiedad MaxRecord. Para vistas locales, se buscarán todos los registros.
    FetchMemo* .T. – Se buscan los campos memo con los resultados de vista..F. – No se buscan los campos memo con los resultados de vista.
    FetchSize* Número de filas tomadas progresivamente del conjunto de resultados de tablas remotas. El valor predeterminado es 100 filas. Si se establece FetchSize en –1, se recupera el conjunto completo de resultados (limitado por la configuración de MaxRecords).
    KeyFieldList Lista, delimitada por comas, de campos principales para el cursor.No tiene valor predeterminado. Es necesario incluir una lista de nombres de campos para que funcionen las actualizaciones.
    MaxRecords* El número máximo de filas tomadas cuando se devuelven los conjuntos de resultados. El valor predeterminado es – 1 (se devuelven todas las filas). Un valor de 0 especifica que se ejecuta la vista pero que no se toman resultados.
    Prepared Especifique verdadero (.T.) para preparar instrucciones SQL para las llamadas subsiguientes de la función REQUERY( ). REQUERY( ) sirve para recuperar los datos para una vista SQL. Vea SQLPREPARE( ) para obtener información adicional acerca de la preparación de instrucciones SQL.El valor predeterminado es Falso (.F.).
    SendUpdates .T. – Especifica que se envíe una consulta de actualización SQL para actualizar las tablas cuando se realice una actualización por medio de la vista..F. – Especifica que no se envíe una consulta de actualización SQL para actualizar tablas.
    Tablas Lista delimitada por comas de los nombres de tablas remotas.No tiene valor predeterminado. Es necesario incluir una lista de nombres de tablas para que funcionen las actualizaciones.
    UpdatableFieldList Lista delimitada por comas de campos en la vista. Esta lista puede incluir campos de tablas locales y remotas. Es necesario incluir una lista de campos para que funcionen las actualizaciones.
    UpdateNameList Lista delimitada por comas de nombres de campos remotos y nombres de campos locales asignados al cursor. Utilice esta opción para especificar nombres válidos de Visual FoxPro para campos del cursor que tengan nombres no válidos para Visual FoxPro.
    UpdateType 1 – Especifica que los datos antiguos se actualizan con los datos nuevos (predeterminado).

    2 – Especifica que para actualizar los datos, se eliminan los datos antiguos y se insertan los nuevos.

    UseMemoSize* Especifica el tamaño mínimo (en bytes) para el que se devuelven las columnas de resultados en campos memo. Por ejemplo, si el ancho de un resultado de columna es mayor que el valor de UseMemoSize, dicho resultado se almacena en un campo memo. UseMemoSize puede variar de 1 a 255; el valor predeterminado es 255.
    WhereType La cláusula WHERE empleada para actualizar tablas remotas. WhereType puede asumir los valores siguientes:

    1 o DB_KEY (de FOXPRO.H). La cláusula WHERE usada para actualizar tablas remotas sólo consta de campos principales especificados con la propiedad KeyFieldList.

    2 o DB_KEYANDUPDATABLE (de FOXPRO.H). La cláusula WHERE usada para actualizar tablas remotas consta de los campos principales especificados con la propiedad KeyFieldList y cualquier campo actualizable.

    3 o DB_KEYANDMODIFIED (de FOXPRO.H) (valor predeterminado). La cláusula WHERE empleada para actualizar tablas remotas consta de los campos principales especificados con la propiedad KeyFieldList y cualquier otro campo modificado.

    4 o DB_KEYANDTIMESTAMP (de FOXPRO.H). La cláusula WHERE usada para actualizar tablas remotas consta de los campos principales especificados con la propiedad KeyFieldList y una comparación de las marcas de hora.

    * Esta propiedad se utiliza principalmente para vistas remotas; el hecho de establecerla no tiene ningún efecto sobre las vistas locales. Sin embargo, puede establecer previamente esta propiedad para vistas locales que vayan a aumentar de tamaño.

  • cTableAlias
    Especifica el alias de la tabla o el cursor para los que se establece la propiedad.

  • nWorkArea
    Especifica el área de trabajo de la tabla o el cursor para los que se establece la propiedad. Si especifica 0 para nWorkArea, CURSORSETPROP( ) establece el valor de entorno utilizado para todas las tablas o cursores subsiguientes.

    Nota   El almacenamiento en búfer no se aplica a las tablas abiertas implícitamente, por ejemplo mediante los comandos SQL INSERT/UPDATE/DELETE.

Observaciones

CURSORSETPROP( ) devuelve verdadero (.T.) si Visual FoxPro establece correctamente la propiedad que usted especifica. Visual FoxPro genera un error si no puede establecerse la propiedad especificada.

La configuración de la propiedad Buffering de CURSORSETPROP( ) determina cómo realiza Visual FoxPro el bloqueo de registros y el almacenamiento de actualizaciones en búfer. Si desea obtener información adicional acerca del bloqueo de registros y el almacenamiento en búfer de actualización, vea Almacenamiento de datos en búfer.

La configuración de la propiedad CURSORSETPROP( ) WhereType determina cómo se realizan las actualizaciones de tablas remotas. Si desea obtener información adicional acerca de la actualización de tablas remotas, vea Crear bases de datos.

CURSORSETPROP( ) puede utilizarse para no aplicar la propiedad FetchSize SQLSETPROP( ) para un cursor. Esta propiedad se hereda del controlador de conexión del cursor de forma predeterminada.

Utilice CURSORGETPROP( ) para devolver la configuración actual de la propiedad para una tabla o un cursor de Visual FoxPro creado para un tabla.

La configuración de la propiedad se especifica para la tabla o el cursor abierto en el área de trabajo seleccionada actualmente si se ejecuta CURSORSETPROP( ) sin los argumentos opcionales cTableAlias o nWorkArea.

Ejemplo

El ejemplo siguiente demuestra cómo puede activar el almacenamiento optimista de tablas en búfer con CURSORSETPROP( ). MULTILOCKS se establece en ON, un requisito para el almacenamiento de tablas en búfer. Se abre la tabla customer de la base de datos testdata y se usa CURSORSETPROP( ) para establecer el modo de almacenamiento optimista de tablas en búfer (5). Aparecerá un cuadro de mensaje para mostrar el resultado de la operación.

CLOSE DATABASES
CLEAR

SET MULTILOCKS ON
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer     && Open customer table

* Set buffering mode and store logical result
lSuccess=CURSORSETPROP("Buffering", 5, "customer")
IF lSuccess = .T.
   =MESSAGEBOX("Operation successful!",0,"Operation Status")
ELSE
   =MESSAGEBOX("Operation NOT successful!",0,"Operation Status")
ENDIF

Vea también

CURSORGETPROP( ) | SET MULTILOCKS | SQLGETPROP( ) | SQLSETPROP( )