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
  • Búsqueda genérica/búsqueda por coincidencia de datos de salida
  • Búsqueda por coincidencia exacta en Access
  • Realizar una búsqueda en una clave compuesta
  • Buscar en un artículo de array
  • Buscar y filtrar
  • Recorrer en bucle los registros que coinciden con una condición
  • Optimización de las iteraciones
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 primer registro que tenga un elemento específico con un valor mayor o igual al valor buscado (búsqueda genérica). Se lee la Record y se actualizan las variables HFSQL correspondientes.
En la mayoría de los casos, HReadSeek establece la posición en el archivo de datos para recorrer los registros que coinciden con una condición. HReadNext se utiliza para leer el siguiente Record correspondiente a la condición.Después de llamar a la función HReadSeek, se pueden producir los siguientes casos:
  • se encontró un registro que corresponde a la condición, se bloqueó (si es necesario) y se cargó en la memoria: HFound devuelve True.
  • el archivo de datos está vacía o no hay Record correspondiente a la condición: no se realiza ninguna lectura y la función HOut devuelve True.
Esta función se puede utilizar con archivos de datos, vistas HFSQL o consultas.
Observaciones:
  • Por Default, HReadSeekFirst y HReadSeekLast se utilizan para realizar búsquedas de coincidencia exacta.
  • Por Default, HReadSeek se utiliza para realizar una búsqueda genérica en cadenas. Esta búsqueda no es genérica en enteros, reales, fechas, monedas, etc.
// Find the first record
// for which the CUSTOMER name is MOORE
HReadSeek(CUSTOMER, NAME, "MOORE")
IF HFound() THEN
Trace("Customer MOORE found")
ELSE
Trace("Customer MOORE not found")
END
Sintaxis
<Result> = HReadSeek(<Data file> , <Item> , <Sought value> [, <Options>])
<Result>: Booleano (opcional)
Corresponde a:
  • True si se encontró y leyó el registro buscado. El buffer de archivos está cargado con los datos de la Record encontrada. En este caso, el valor de la función HError es 0 y el de la función HFound es True.
  • False en los siguientes casos:
    • error al acceder al archivo (no se puede leer, por ejemplo). HError devuelve un código de error. HErrorInfo devuelve más detalles sobre el error. En este caso, no se puede utilizar HFound.
    • el acceso al archivo se realizó pero no se encontró ningún Record. En este caso, el valor de la función HError es 0 y el de la función HFound es False.
    Atención: En este caso, no se puede utilizar el búfer del archivo.
<Data file>: Cadena de caracteres
Nombre del archivo de datos, vista HFSQL o consulta utilizada.
<Item>: Cadena de caracteres
Nombre del artículo sobre el que se realizará la búsqueda.
Para una búsqueda por coincidencia exacta, este parámetro puede corresponder a un elemento no clave.
<Sought value>: Tipo de valor
Valor del artículo buscado.
<Options>: Constante o combinación de constantes opcional
Permite configurar:
  • el modo de bloqueo aplicado al buscado Record.
  • el tipo de búsqueda realizada.
hIdenticalBúsqueda por coincidencia exacta (ver las Notas)
Una búsqueda genérica es realizada por Default (constante no especificada).
hKeepFilterEl filtro set de HFilter se tendrá en cuenta, aunque la clave de búsqueda no esté optimizada para el filtro. Recordatorio: la función HFilter devuelve la clave de búsqueda optimizada para el filtro.
Atención: en este caso, pueden surgir problemas de rendimiento en archivos de datos demasiado grandes.
hLimitParsing
Conectores Nativos La iteración se detendrá cuando se encuentre el último valor buscado. El actual Record corresponderá a este último Record encontrado.
El valor de la función HFound será False y el de la función HOut será True..
Esta constante se utiliza para optimizar la velocidad de búsqueda en el modo Cliente/Servidor..
Esta constante se recomienda cuando se realiza una búsqueda simple (sin recorrer los elementos encontrados).
HFSQL Client/Server Esta constante no está disponible.
hLockNoSin bloqeuo: el Record puede ser leído o modificado 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.
El bloqueo de teclas se ignora si se utiliza una consulta.
hLockWriteBloqueo de escritura: el registro leído actualmente puede ser leído por otra aplicación, pero no se puede modificar.
El bloqueo de teclas se ignora si se utiliza una consulta.
hNoRefresh
Conectores Nativos La función HReadSeek no actualiza el contenido de la tabla o consulta. Si es posible, la consulta no se vuelve a ejecutar. Se guardan todas las posiciones guardadas.
Conectores Nativos Las opciones de bloqueo no tendrán efecto si el proveedor OLE DB o el Conector Nativo no soporta los bloqueos.
Observaciones
Universal Windows 10 AppiPhone/iPadHFSQL ClassicHFSQL Client/ServerConectores Nativos

Búsqueda genérica/búsqueda por coincidencia de datos de salida

Una búsqueda genérica o una búsqueda por coincidencia exacta se realizará de acuerdo con <Valor buscado>.
  • Búsqueda genérica: buscar todos los registros que comienzan con el valor especificado
    Para realizar una búsqueda genérica, se debe especificar el valor deseado en el parámetro <Valor buscado>.
    Observación: Para la compatibilidad con WINDEV 5.5, la búsqueda genérica de una cadena vacía ("") es equivalente al uso de la función HReadFirst.
  • Búsqueda exacta: buscar todos los registros que correspondan exactamente al valor especificado.
    Para realizar una búsqueda por coincidencia exacta, el tamaño del argumento de búsqueda debe ser exactamente el mismo que el tamaño de la clave.. Para realizar una búsqueda exacta, también se puede utilizar la función hIdentical.
    Para realizar una búsqueda de coincidencia exacta, también tiene la posibilidad de utilizar HReadSeekFirst.
Atención: Si utiliza archivos de Hyper File 5.5 o archivos en formato Hyper File 5.5 migrados a HFSQL Classic, la implementación de búsquedas genéricas y búsquedas de coincidencia exacta puede cambiar. Para más detalles, consulte la página web de Hyper File 5.5 y HFSQL Classic: ¿Cómo gestionar los caracteres de espacio en las búsquedas? tabla
Conectores Nativos

Búsqueda por coincidencia exacta en Access

Para realizar una búsqueda de coincidencia exacta en una base de datos ACCESS, se recomienda utilizar NoSpace si hay caracteres de espacio al final del valor buscado.
Universal Windows 10 AppiPhone/iPadHFSQL ClassicHFSQL Client/ServerConectores Nativos

Realizar una búsqueda en una clave compuesta

Se pueden utilizar varios métodos para realizar una búsqueda en una clave compuesta:
1. Utilizando una lista de valores .
La siguiente sintaxis se utiliza para realizar una búsqueda en una clave compuesta:
HReadSeek(<File name>, <Name of composite key>,
[<Search value of first element of composite key>,
<Search value of first element of composite key>, ...])
Ejemplo:
// Find the record
HReadSeek(CUSTOMER, LASTNAME_FIRSTNAME, ["MOORE","Vince"])

WHILE HFound(CUSTOMER)
// Process
HReadNext(CUSTOMER, LASTNAME_FIRSTNAME)
END

2. Uso de la función HBuildKeyValue
Si el elemento buscado es una clave compuesta, el valor a encontrar puede ser construido por HBuildKeyValue.
Universal Windows 10 AppiPhone/iPadHFSQL ClassicHFSQL Client/ServerConectores Nativos

Buscar en un artículo de array

La búsqueda se realiza en el primer elemento array (elemento con índice 1). Para realizar una búsqueda en los otros elementos de array, utilice los filtros o consultas.
Universal Windows 10 AppiPhone/iPadHFSQL ClassicHFSQL Client/ServerConectores Nativos

Buscar y filtrar

Si se activa un filtro (HFilter), la búsqueda tendrá en cuenta el filtro sólo si la clave utilizada es idéntica.
Universal Windows 10 AppiPhone/iPadHFSQL ClassicHFSQL Client/ServerConectores Nativos

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

En la mayoría de los casos, HReadSeek establece la posición en el archivo de datos para recorrer los registros que coinciden con una condición. HReadNext y HReadPrevious se utilizan para leer los registros coincidentes siguientes y anteriores.
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/ServerConectores Nativos

Optimización de las iteraciones

Para optimizar las primeras iteraciones en un archivo de datos, utilice HOptimize en este archivo de datos.
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: 30/10/2022

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