Árvore de páginas

Sintaxis

 

MsSeek(<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 la orden de búsqueda previamente especificada por la función dbSetOrder(). Es decir, de acuerdo con el índice activo en el momento para 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 sobre 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 se encuentre una parte de la información.

 

<expresión lógica 2>

 

Define si el cursor se ubicará en el primer 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 MsSeek tiene las mismas funciones de la función dbSeek(), con la ventaja de que no se necesita acceder nuevamente a la base de datos para ubicar una información utilizada por la conexión (thread) activa.

 

De esta manera la thread mantiene en la memoria los datos necesarios para reubicar los registros ubicados, de tal manera que la aplicación puede, simplemente, ubicar el registro sin ejecutar nuevamente la búsqueda.

 

La diferencia entre las funciones dbSeek() y MsSeek() se nota en las aplicaciones con gran volumen de posiciones y búsquedas, como por ejemplo, informes que necesitan hacer referencia diversas veces al mismo registro durante una ejecución.

 

 

Ejemplos

 

A continuación, el ejemplo de una búsqueda exacta. Es decir, la búsqueda se considerará un éxito únicamente 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 MsSeek(“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 MsSeek(“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

 

 

 

 

  • Sem rótulos