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
  • Espacio en blanco al final del artículo
  • Realizar una búsqueda en una clave compuesta
  • Buscar en un artículo de array
  • Buscar y filtrar
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
El número de la Record actual se modifica sólo cuando es devuelto por <Fuente>.RecNum. Para las funciones que manipular el número actual de Record (<Fuente>.Delete, <Fuente>.Read, <Fuente>.Modify, etc.), el valor de este número no se actualiza: se debe utilizar la función <Fuente>.RecNum(). Por ejemplo: no hacer:
Customer.Delete()
pero
Customer.Delete(Customer.RecNum())
Los valores de la posición de búsqueda se leen en orden ascendente (ver Observaciones para más detalles).
Atención: El registro cargado en memoria no se modifica. Las variables HFSQL (por ejemplo, Cliente.Nombre, es decir el elemento Nombre del archivo Cliente) no se actualizan.
En la mayoría de los casos, <Fuente>.Seek establece la posición en el archivo de datos para recorrer los registros que coinciden con una condición. <Fuente>.Next se utiliza para posicionarse en el siguiente Record correspondiente a la condición.
Después de llamar a la función <Fuente>.Seek, se pueden producir los siguientes casos:
  • se encontró un registro que corresponde a la condición: <Fuente>.Found devuelve True
  • el archivo de datos está vacía o no hay Record correspondiente a la condición: <Fuente>.Out devuelve True
Observaciones:
// Generic search for the first record for which
// the zip code starts with "75"
Customer.Seek(ZC, "75")
Ejemplo
// Exact-match search for the first record
// for which the Customer name is Moore
// Mode 7: Text item ending with Charact(0)
Customer.Seek(Name, "Moore" + Charact(0))
 
// Mode 5.5: Text item filled by space characters
Customer.Seek(Name, Complete("Moore", 30))
Sintaxis
<Result> = <Source>.Search(<Key item> , <Sought value> [, <Options>])
<Result>: Booleano
  • True si se estableció la posición,
  • False si se produce un error (bloqueo, etc.): el registro no se lee. Este problema puede ser causado por:
    • un problema de posicionamiento (archivo de datos vacío, etc.): 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 HFSQL utilizado.
<Key item>: Cadena de caracteres
Nombre del elemento clave sobre el que se realizará la búsqueda.
<Sought value>: Tipo de valor
Valor del artículo buscado.
<Options>: Constante o combinación de constantes opcional
Configura:
  • el modo de bloqueo aplicado al buscado Record.
  • el tipo de iteración
  • el tipo de búsqueda realizada.
hIdenticalBúsqueda por coincidencia exacta (ver las Notas).
Una búsqueda genérica es realizada por Default (parámetro no especificado).
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.
hLimitParsingLa iteración se detendrá cuando se encuentre el último valor buscado. El actual Record corresponderá al Record encontrado. En este caso, la función <Fuente>.Found devuelve False y la función <Fuente>.Out devuelve True.
Esta constante se utiliza para optimizar la velocidad en el modo Cliente/Servidor.
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.
OLE DB Bloqueo de solo escritura. Equivale a la constante hLockWrite.
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.
Java Acceso con JDBC: Este parámetro no se tiene en cuenta.
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.
Hyper File 5.5 Las opciones de bloqueo no se tienen en cuenta. Utilizar las funciones de lectura de bloqueo (HReadFirstLock) conservadas para la compatibilidad con el pasado.
Observaciones

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>.
  • Para una búsqueda genérica: realiza una búsqueda en todos los registros que comienzan por el valor especificado
    Para realizar una búsqueda genérica, el valor solicitado debe especificarse en <Valor de compra&gt.
  • Para una búsqueda por coincidencia exacta: realiza una búsqueda de todos los registros que coinciden exactamente con el 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.. El argumento de búsqueda debe estar lleno de caracteres de "espacio" para las teclas de texto. Para ello, utilice la función <Tipo ANSI string>.Complete.

Espacio en blanco al final del artículo

Por defecto, cuando se lee una Record, los caracteres de espacio que se encuentran al final de los elementos de texto no se eliminan en las variables del archivo.
Para eliminar los caracteres de espacio, utilice WithSpace.

Realizar una búsqueda en una clave compuesta

Se pueden utilizar varios métodos para realizar una búsqueda en una clave compuesta:
Utilizando una lista de valores
La siguiente sintaxis se utiliza para realizar una búsqueda en una clave compuesta:
HSeek(<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.Seek(LastName_FirstName, ["MOORE","Vince"])
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.

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.

Buscar y filtrar

Si se activa un filtro (<Fuente>.Filter), éste se tiene en cuenta durante la búsqueda.
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