AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Administrar bases de datos / HFSQL / Funciones HFSQL
  • 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
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
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.
Ejemplo
// 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á.
    hLockReadWriteBloqueo de lectura/escritura: la corriente cruzada Record no puede ser leída o reactivada por otra aplicación.
    hLockWriteBloqueo 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.
    hCheckIntegrityComprueba la integridad de la operación, incluso si la comprobación de integridad de automatic está desactivada (HSetIntegrity).
    hIgnoreIntegrityIgnora 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

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.
Conectores Nativos

Archivos xBase

La función HDelete y HCross tienen el mismo efecto: el Record se cruza pero no se borra. Por lo tanto, la Record puede volver a activarse mediante HModify. En este caso, la función HState devuelve la constante hStateCrossed en un registro eliminado (y no la constante hStateDel).
Componente: wd290hf.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 27/05/2022

Señalar un error o enviar una sugerencia | Ayuda local