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
  • Lectura o no de la operación según un elemento clave
  • Recorrer en bucle los registros que coinciden con una condición
  • Bloqueos
  • Memos
  • Varios
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
Establece la posición en el registro anterior del archivo de datos de acuerdo con un elemento de navegación. Se lee el registro y se actualizan las variables HFSQL (por ejemplo, Cliente.Nombre, es decir, el elemento/campo Nombre del archivo de datos Cliente).
Los valores de la posición de búsqueda se leen en orden descendente (véase observaciones para más detalles).
Generalmente, la función HReadPrevious establece la posición al recorrer el archivo de datos.
Después de llamar a la función HReadPrevious, se pueden producir los siguientes casos:
  • el archivo de datos está vacío o ningún registro corresponde al filtro (definido con la función HFilter): no se realiza ninguna lectura y la función HOut devuelve True.
  • la función intenta bloquear un registro ya bloqueado en modo de lectura: no se realiza ninguna operación de lectura, HErrorLock devuelve True y HOut devuelve True.

Esta función se puede utilizar con archivos de datos, vistas HFSQL o consultas.
Ejemplo
HReadLast(Customer, Name)
WHILE HOut() = False
// Process the record
HReadPrevious(Customer, Name)
END
Sintaxis
<Result> = HReadPrevious([<Data file> [, <Browse item>] [, <Options>]])
<Result>: booleano
  • True si se leyó el registro anterior,
  • False si se produce un error (bloqueo, fin del archivo de datos, etc.): el registro no se lee. Este problema puede ser causado por:
    • un problema de posicionamiento (archivo vacío, ....): la función HFound devuelve False y la función HError devuelve 0.
    • un error: la función HError devuelve un número entero distinto de 0. La función HErrorInfo devuelve más detalles.
<Data file>: Cadena de caracteres opcional
Nombre del archivo de datos, vista HFSQL o consulta utilizada. Si este parámetro corresponde a una cadena vacía, HReadPrevious utilizará el último archivo de datos utilizado por la última función de gestión HFSQL (función que comienza por "H").
<Browse item>: Cadena de caracteres opcional
Nombre del elemento utilizado para el bucle de el archivo de datos. Si no se especifica este nombre, la función HReadPrevious utilizará:
  • Para un archivo de datos: el último elemento de búsqueda utilizado en este archivo por la última función para la gestión de HFSQL (empezando por la letra H). Si este campo no existe, el mejor campo de navegación se utiliza automáticamente.
  • For a query: el PEDIDO POR de consulta si existe, en caso contrario el último ítem utilizado.
  • Para una vista: el elemento de ordenación de la vista (si existe), en caso contrario el último elemento utilizado.
<Options>: Constante o combinación de constantes opcional
Permite configurar:
  • el bloqueo establecido en el Record leído por HReadPrevious.
  • la gestión de duplicados. Por Default, todos los duplicados son examinados.
hDistinctSi se encuentran duplicados, esta constante permite leer una sola Record entre los duplicados. Este parámetro sólo se tiene en cuenta si la búsqueda se realiza en un elemento clave.
hLockNoSin bloqeuo: la Record puede ser leída o modificada por otra aplicación durante la lectura.
hLockReadWriteBloqueo de lectura y escritura: el Record que se lee actualmente no puede ser leído o modificado por otra aplicación.
hLockWriteBloqueo de escritura: el Record que se lee actualmente puede ser leído por otra aplicación pero no puede ser modificado por otra aplicación.

OLE DBConectores Nativos Las opciones de bloqueo no tendrán efecto si los bloqueos no son soportados por el proveedor OLE DB o por Conector Nativo.
OLE DB Las opciones de bloqueo especificadas en la función HReadPrevious no se tienen en cuenta. El modo de bloqueo especificado con la función HReadFirst o HReadLast seguirá siendo efectivo al llamar a las funciones HReadPrevious y HReadNext.
Para cambiar el modo de bloqueo, utilice:
Conectores Nativos Para Conector Nativo Oracle, se puede especificar un modo de bloqueo diferente para cada Record. Sin embargo, si se inició una transacción mediante SQLTransaction antes de establecer el bloqueo, éste sólo se liberará al final de la transacción (SQLTransaction con la constante sqlCommit o sqlRollBack).
Hyper File 5.5 Las opciones de bloqueo no se tienen en cuenta. Utilizar las funciones de lectura de bloqueo (HReadPreviousLock) conservadas para la compatibilidad con el pasado.
Observaciones

Lectura o no de la operación según un elemento clave

Si el elemento utilizado es una clave, la función HReadPrevious lee el registro con el valor de clave más alto. El criterio de ordenación que se tiene en cuenta es el especificado en el análisis para esta clave.
Si el elemento utilizado es una clave, la función HReadPrevious lee el anterior registro activo. Al navegar por el archivo de datos, los Record s se ordenarán según su número de Record.
En este caso, el elemento de navegación seleccionado aparecerá en rojo en el editor de código y se mostrará una advertencia en la pantalla de "Panel"Código.
Observación: La autocompletado propone únicamente los puntos clave.

Recorrer en bucle los registros que coinciden con una condición

En la mayoría de los casos, HReadSeek, HReadSeekFirst y HReadSeekLast se utilizan para posicionar en el archivo de datos para realizar un bucle de búsqueda entre los registros correspondientes a una condición. Las funciones HReadNext y HReadPrevious permiten leer el anterior o siguiente registro según las siguientes condiciones:
  • si el elemento utilizado es una clave, la función HReadPrevious leerá los registros anteriores que corresponden a los valores inferiores o iguales al valor buscado.
  • si el elemento utilizado no es una clave, HReadPrevious leerá los siguientes registros correspondientes a los valores iguales al valor buscado.
Para ignorar la búsqueda mientras se va a la siguiente o anterior Record, utilice una de las siguientes funciones:
Reportes y ConsultasHFSQL ClassicHFSQL Client/ServerProcedimientos almacenadosHyper File 5.5OLE DBConectores Nativos

Bloqueos

Por defecto (<Opciones> no especificadas), la Record no está bloqueada.
Si se solicita un bloqueo (constante hLockWrite o hLockReadWrite), se leerá el registro solo si aún no ha sido bloqueado.
OLE DBConectores Nativos Las opciones de bloqueo no tendrán efecto si los bloqueos no son soportados por el proveedor OLE DB o por Conector Nativo.

Memos

Los memos asociados con el Record pueden ser leídos automáticamente (o no) cuando se lee el Record. HSetMemo se utiliza para personalizar esta operación de lectura de automatic.
Si los memos están soportados, los memos de texto asociados se leen cuando se lee la Record. Los memos binarios sólo se leen cuando se utilizan explícitamente (HExtractMemo).

Varios

  • La función HRecNum devuelve el número de registro actual.
  • La función HChangeKey cambia la clave de búsqueda conservando la posición en el registro actual.
  • Para optimizar las primeras iteraciones en un archivo de datos, utilice HOptimize en este archivo de datos.
  • Esta función sustituye a HReadPreviousLock y HReadPrevious, que se mantuvieron por compatibilidad con WINDEV 5.5.
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: 14/07/2022

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