AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

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, <Fuente>.ReadSeek establece la posición en el archivo de datos para recorrer los registros que coinciden con una condición. <Fuente>.ReadNext se utiliza para leer el siguiente Record correspondiente a la condición.Después de llamar a la función <Fuente>.ReadSeek, 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: <Fuente>.Found 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 <Fuente>.Out devuelve True.
Esta función se puede utilizar con archivos de datos, vistas HFSQL o consultas.
Observaciones:
  • Por Default, <Fuente>.ReadSeekFirst y <Fuente>.ReadSeekLast se utilizan para realizar búsquedas de coincidencia exacta.
  • Por Default, <Fuente>.ReadSeek se utiliza para realizar una búsqueda genérica en cadenas. Esta búsqueda no es genérica en enteros, reales, fechas, monedas, etc.
Ejemplo
// Find the first record
// for which the Customer name is MOORE
Customer.ReadSeek(Name, "MOORE")
IF Customer.Found() THEN
Trace("Customer MOORE found")
ELSE
Trace("Customer MOORE not found")
END
Sintaxis
<Result> = <Source>.ReadSeek(<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 <Fuente>.Found 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 <Fuente>.Found.
    • 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 <Fuente>.Found es False.
    Atención: En este caso, no se puede utilizar el búfer del archivo.
<Source>: Tipo de fuente especificada
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 <Fuente>.Filter se tendrá en cuenta, aunque la clave de búsqueda no esté optimizada para el filtro. Recordatorio: la función <Fuente>.Filter 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 <Fuente>.Found será False y el de la función <Fuente>.Out 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.
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.
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.
Java Acceso con JDBC: Esta constante no está disponible.
hNoRefresh
ODBCConectores Nativos La función <Fuente>.ReadSeek 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
WINDEVUniversal Windows 10 AppCódigo de Usuario (UMC)HFSQL 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 <Fuente>.ReadFirst.
  • 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 <Fuente>.ReadSeekFirst.
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
WINDEVCódigo de Usuario (UMC)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.
WINDEVUniversal Windows 10 AppJavaCódigo de Usuario (UMC)HFSQL 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
Customer.ReadSeek(LastName_FirstName, ["MOORE","Vince"])
 
WHILE Customer.Found()
// Process
Customer.ReadNext(LastName_FirstName)
END

2. Uso de la función <Fuente>.BuildKeyValue
Si el elemento buscado es una clave compuesta, el valor a encontrar puede ser construido por <Fuente>.BuildKeyValue.
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.
WINDEVUniversal Windows 10 AppJavaCódigo de Usuario (UMC)HFSQL 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.
WINDEVUniversal Windows 10 AppJavaCódigo de Usuario (UMC)HFSQL ClassicHFSQL Client/ServerHyper File 5.5OLE DBConectores Nativos

Buscar y filtrar

Si se activa un filtro (<Fuente>.Filter), la búsqueda tendrá en cuenta el filtro sólo si la clave utilizada es idéntica.
WINDEVUniversal Windows 10 AppJavaCódigo de Usuario (UMC)HFSQL 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, <Fuente>.ReadSeek establece la posición en el archivo de datos para recorrer los registros que coinciden con una condición. <Fuente>.ReadNext y <Fuente>.ReadPrevious 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:
WINDEVUniversal Windows 10 AppCódigo de Usuario (UMC)HFSQL ClassicHFSQL Client/ServerHyper File 5.5OLE DBConectores Nativos

Optimización de las iteraciones

Para optimizar las primeras iteraciones en un archivo de datos, utilice <Fuente>.Optimize en este archivo de datos.
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