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
  • Versiones anteriores
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.
    Java Acceso con JDBC: La gestión de las cerraduras no está disponible para las bases de datos a las que accede el JDBC.
  • 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.
Hyper File 5.5 Para realizar búsquedas genéricas en una clave compuesta, todos los componentes de la clave compuesta deben ser componentes de texto. De lo contrario, se realiza una búsqueda por coincidencia exacta.
<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).
Java Acceso con JDBC: Esta constante no está disponible.
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.
Hyper File 5.5 Este Variable no puede ser usado.
hLimitParsing
ODBCConectores 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.
PHP La gestión de los bloqueos no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
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.
ODBC Bloqueo de solo escritura. Equivale a la constante hLockWrite.
PHP La gestión de los bloqueos no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
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.
PHP La gestión de los bloqueos no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
hNoRefresh
PHPODBCConectores 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.
ODBCConectores Nativos Las opciones de bloqueo no tendrán efecto si el proveedor OLE DB o el Conector Nativo no soporta los bloqueos.
Java Acceso con JDBC: Los bloqueos no se pueden gestionar en bases de datos a las que se accede mediante JDBC.
Observaciones
WINDEVWEBDEV - Código ServidorReportes y ConsultasUniversal Windows 10 AppiPhone/iPadCódigo de Usuario (UMC)PHPAjaxHFSQL ClassicHFSQL Client/ServerHyper File 5.5OLE DBConectores 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
WINDEVWEBDEV - Código ServidorReportes y ConsultasCódigo de Usuario (UMC)PHPAjaxConectores 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.
WINDEVWEBDEV - Código ServidorReportes y ConsultasUniversal Windows 10 AppiPhone/iPadJavaCódigo de Usuario (UMC)PHPAjaxHFSQL ClassicHFSQL Client/ServerHyper File 5.5OLE DBConectores 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.
Hyper File 5.5 Para realizar búsquedas genéricas en una clave compuesta, todos los componentes de la clave compuesta deben ser componentes de texto. De lo contrario, se realiza una búsqueda por coincidencia exacta.
WINDEVWEBDEV - Código ServidorReportes y ConsultasUniversal Windows 10 AppiPhone/iPadJavaCódigo de Usuario (UMC)PHPAjaxHFSQL ClassicHFSQL Client/ServerHyper File 5.5OLE DBConectores 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.
WINDEVWEBDEV - Código ServidorReportes y ConsultasUniversal Windows 10 AppiPhone/iPadJavaCódigo de Usuario (UMC)PHPAjaxHFSQL ClassicHFSQL Client/ServerHyper File 5.5OLE DBConectores 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.
WINDEVWEBDEV - Código ServidorReportes y ConsultasUniversal Windows 10 AppiPhone/iPadJavaCódigo de Usuario (UMC)PHPAjaxHFSQL ClassicHFSQL Client/ServerHyper File 5.5OLE DBConectores 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:
WINDEVWEBDEV - Código ServidorReportes y ConsultasUniversal Windows 10 AppiPhone/iPadCódigo de Usuario (UMC)PHPAjaxHFSQL ClassicHFSQL Client/ServerHyper File 5.5OLE DBConectores Nativos

Optimización de las iteraciones

Para optimizar las primeras iteraciones en un archivo de datos, utilice HOptimize en este archivo de datos.
WINDEV

Versiones anteriores

Esta función sustituye a HReadSeekLock y HReadSeekNoLock, 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: 30/10/2022

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