AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

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 <Fuente>.ReadPrevious establece la posición al recorrer el archivo de datos.
Después de llamar a la función <Fuente>.ReadPrevious, 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 <Fuente>.Filter): no se realiza ninguna lectura y la función <Fuente>.Out 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 <Fuente>.Out devuelve True.

Esta función se puede utilizar con archivos de datos, vistas HFSQL o consultas.
Ejemplo
Customer.ReadLast(Name)
WHILE Customer.Out() = False
// Process the record
Customer.ReadPrevious(Name)
END
Sintaxis
<Result> = <Source>.ReadPrevious([<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 <Fuente>.Found 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.
<Source>: Tipo de fuente especificada
Nombre del archivo de datos, vista HFSQL o consulta utilizada.
<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 <Fuente>.ReadPrevious 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 <Fuente>.ReadPrevious.
  • 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.

Conectores Nativos Las opciones de bloqueo no tendrán efecto si los bloqueos no son soportados por el proveedor OLE DB o por Conector Nativo.
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).
Observaciones

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

Si el elemento utilizado es una clave, la función <Fuente>.ReadPrevious 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 <Fuente>.ReadPrevious 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, <Fuente>.ReadSeek, <Fuente>.ReadSeekFirst y <Fuente>.ReadSeekLast 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 <Fuente>.ReadNext y <Fuente>.ReadPrevious permiten leer el anterior o siguiente registro según las siguientes condiciones:
  • si el elemento utilizado es una clave, la función <Fuente>.ReadPrevious leerá los registros anteriores que corresponden a los valores inferiores o iguales al valor buscado.
  • si el elemento utilizado no es una clave, <Fuente>.ReadPrevious 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:
Universal Windows 10 AppiPhone/iPadHFSQL ClassicHFSQL Client/ServerProcedimientos almacenadosConectores 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.
Conectores 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. <Fuente>.SetMemo 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 (<Fuente>.ExtractMemo).

Varios

  • La función <Fuente>.RecNum devuelve el número de registro actual.
  • La función <Fuente>.ChangeKey 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 <Fuente>.Optimize 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 25
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 20/06/2023

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