Sintaxis
DbSeek(<expresión carácter>, <expresión lógica 1>, [ <expresión lógica 2> ] )
Propósito
Busca el área de trabajo activa para encontrar un determinado registro, de acuerdo con la clave de búsqueda utilizada.
Argumentos
<expresión carácter>
Son los datos del registro que se desea ubicar, de acuerdo con el orden de búsqueda previamente especificada por la función dbSetOrder(). Es decir, de acuerdo con el índice activo en el momento, en el área de trabajo.
<expresión lógica 1>
Define si el cursor se quedará ubicado en el próximo registro válido, con relación a la clave de búsqueda especificada, o al final del archivo, si no se encuentra la información exacta de la clave de búsqueda. El estándar utilizado es falso (.F.), indicando que la búsqueda será aproximada.
En este caso, la búsqueda se considerará un éxito cuando encuentre una parte de la información.
<expresión lógica 2>
Define si el cursor se ubicará en el primero o en el último registro de un intervalo con la misma información especificada en la clave de búsqueda. El estándar utilizado es falso (.F.), indicando que el cursor se ubicará en el primer registro encontrado.
Utilización
La función permite ubicar el cursor del área de trabajo activa en el registro que corresponda a la información especificada en la clave de búsqueda. La función devuelve un valor lógico indicando si se encontró la clave de búsqueda. Si devuelve verdadero (.T.), la búsqueda tuvo éxito. En caso contrario, devuelve falso (.F.).
Sugerencias
La función MsSeek() tiene el mismo objetivo de la función dbSeek(). La ventaja de la función MsSeek() es que no necesita acceder nuevamente a la base de datos para ubicar una información utilizada por la conexión (thread) activa.
Ejemplos
A continuación, el ejemplo de una búsqueda exacta. Es decir, la búsqueda se considerará un éxito solamente si se encuentra toda la clave de búsqueda.
dbSelectArea(“SA1”)
// De acuerdo con el archivo SIX, la clave de búsqueda es A1_FILIAL + A1_COD + A1_LOJA
dbSetOrder(1)
IF dbSeek(“01” + “000001” + “02”) // Sucursal: 01 / Código: 000001 / Tienda: 02
MsgInfo(“Cliente ubicado”, “Consulta por cliente”)
ELSE
MsgInfo(“Cliente no encontrado”, “Consulta por cliente”)
ENDIF
En el siguiente ejemplo, verificaremos una búsqueda aproximada. Es decir, la búsqueda se considerará un éxito si se encuentra una parte de la clave de búsqueda.
dbSelectArea(“SA1”)
// De acuerdo con el archivo SIX, la clave de búsqueda es A1_FILIAL + A1_COD + A1_LOJA
dbSetOrder(1)
IF dbSeek(“01” + “000001” + “02”, .T.) // Sucursal: 01 / Código: 000001 / Tienda: 02
MsgInfo(“Cliente ubicado”, “Consulta por cliente”)
ELSE
MsgInfo(“Cliente no encontrado”, “Consulta por cliente”)
ENDIF