|
|
|
|
- Manejando un Record cruzado
- Número de registros tachados
- Versión del archivo de datos
- Cruzar un Record de una consulta
- Casos especiales
- Archivos xBase
HCross (Función)
Disponible solo con estos tipos de conexión
Tacha un registro en un archivo de datos. La Record se borra lógicamente y puede ser recuperada si es necesario. Se realizan las siguientes operaciones: - el Record se convierte en Inactive. Los datos se almacenan (lo que no ocurre cuando un Record es eliminado por HDelete).
- los índices (correspondientes a las claves de Record) se borran del archivo de índices.
- los memos asociados con la Record se almacenan.
Esta función se puede utilizar en los archivos de datos, las vistas de HFSQL Mobile o las consultas.
// Crosses the record #123 HCross(Customer, 123)
// Cross the customer orders HReadSeekFirst(ORDERS, CUSTNUM, ValCustNum) WHILE HFound() = True HCross() HReadNext() END
Sintaxis
<Result> = HCross([<Data file> [, <Record number> [, <Options>]]])
<Result>: booleano - True si se tachó el registro,
- False si se produce un problema (registro bloqueado, problema de integridad, etc.). HErrorInfo devuelve más detalles.
<Data file>: Cadena de caracteres opcional Nombre del archivo de datos HFSQL, consulta o vista utilizada. Si este parámetro es una cadena vacía (""), HCross manipula el último archivo de datos utilizado por la última función HFSQL (función que empieza por "H"). <Record number>: Entero opcional Número de la Record a cruzar. Si no se especifica este parámetro (igual a 0 o a la constante hCurrentRecNum), el registro activo se tachará. <Options>: Constante opcional Configura:- el modo de bloqueo aplicado a la cruzada Record. Si no se especifica una constante de bloqueo, la Record cruzada no está bloqueada.
| | hLockNo (valor predeterminado) | Sin bloqeuo: el cruce de Record no se cerrará. | hLockReadWrite | Bloqueo de lectura/escritura: la corriente cruzada Record no puede ser leída o reactivada por otra aplicación. | hLockWrite | Bloqueo de escritura: otra aplicación puede leer y consultar la record cruzada actual (HRead) pero no puede volver a activarla. Sólo la aplicación actual puede volver a activarla. |
- la gestión de la integridad aplicada a la cruzada Record.
| | hCheckIntegrity | Comprueba la integridad de la operación, incluso si la comprobación de integridad de automatic está desactivada (HSetIntegrity). | hIgnoreIntegrity | Ignora la comprobación de integridad para esta operación, incluso si la comprobación de integridad de automatic está activada (HSetIntegrity). |
Se produce un error de WLanguage si se utilizan las dos constantes al mismo tiempo.. Estas constantes no tienen ningún efecto en el borrado en cascada.
Observaciones Manejando un Record cruzado - Un Record cruzado no se leerá:
- mediante funciones de iteración: HFirst, HLast, HNext, HPrevious, HReadFirst, HReadLast, HReadNext, HReadPrevious, HForward, HBackward
- por las funciones de búsqueda: HSeekFirst, HReadSeekFirst, HSeekLast, HReadSeekLast.
- Una Record cruzada puede ser leída por HRead.
- Un Record cruzado puede volver a activarse mediante HModify o HWrite.
- HState sirve para conocer el estado de record (active, cruzado, borrado, etc.).
- La ubicación física de una Record cruzada sólo puede ser reutilizada (por HAdd, por ejemplo) después:
- la ejecución de HFree,
- una operación de reindexación (con compresión).
Número de registros tachados HNbRec se utiliza para conocer el número de registros cruzados en el archivo de datos. Observación: Para la compatibilidad con WEBDEV 1.5/WINDEV 5.5, el número de registros cruzados también puede ser devuelto por el H.NbDel Variable. Versión del archivo de datos Si HCross tiene éxito, se modifica el número de versión de el archivo de datos. Este número de versión es devuelto por HVersion. Cruzar un Record de una consulta Un registro puede ser tachado: - en el resultado de la consulta.
- en los archivos tratados por la consulta (hModifyFile constante utilizada en HExecuteQuery o HExecuteSQLQuery). En este caso, la constante hWithFilter se selecciona automáticamente.
Independientemente del modo de ejecución de la consulta (con o sin la constante hWithFilter), HCross sólo puede utilizarse en consultas de un solo archivo. Atención: - Los registros no pueden cruzarse en una consulta que utilice grupos o agregados.
- La gestión de la integridad y de los duplicados no se realiza durante las operaciones en las consultas multiarchivo.: se recomienda utilizar las transacciones para evitar cualquier problema.
Casos especiales - Gestión de cierres:
Si se produce un problema de bloqueo al "tachar" un registro (intentar tachar un registro bloqueado, por ejemplo), no se modifica el registro y la función HErrorLock devuelve True. - Gestión de la integridad referencial
Si la gestión de la integridad referencial está activa (función HSetIntegrity), y no se verifica la integridad durante la eliminación, no se ejecuta la función HCross. Se debe probar la función HErrorIntegrity después de la función HCross. - Registros borrados
No se debe llamar a la función HCross en un registro eliminado previamente.
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|