Share via


SCAN ... ENDSCAN (Comando)

Mueve el puntero de registro por la tabla seleccionada y ejecuta un bloque de comandos para cada uno de los registros que cumple las condiciones especificadas.

SCAN [NOOPTIMIZE] [Scope] [FOR lExpression1] [WHILE lExpression2]
   [Commands] [LOOP] [EXIT] 
ENDSCAN

Parámetros

  • NOOPTIMIZE
    Impide la optimización Rushmore de SCAN.

    Si desea obtener más información, vea SET OPTIMIZE y Utilizar Rushmore para agilizar el acceso a los datos.

  • Scope
    Especifica el conjunto de registros que se va a explorar. Sólo se examinarán los registros que se encuentren dentro del rango. Las cláusulas de alcance son: ALL, NEXT nRecords, RECORD nRecordNumber y REST. Para obtener más información acerca de las cláusulas de alcance, vea el tema Cláusulas de alcance.

    El alcance predeterminado para SCAN es todos los registros (ALL).

  • FOR lExpression1
    Ejecuta comandos solamente para los registros para los que lExpression1 se evalúa como verdadero (.T.). La inclusión de la cláusula FOR le permite filtrar los registros que no desea explorar.

    Si lExpression1 es una expresión optimizable, Rushmore optimizará una consulta creada con SCAN ... FOR. Para obtener el máximo rendimiento, utilice una expresión optimizable en la cláusula FOR.

    Si desea obtener más información, vea SET OPTIMIZE y Utilizar Rushmore para agilizar el acceso a los datos.

  • WHILE lExpression2
    Especifica una condición por la cual los comandos se ejecutan siempre que lExpression2 se evalúe como verdadero (.T.).

  • Comandos
    Especifica los comandos de Visual FoxPro que se van a ejecutar.

  • LOOP
    Devuelve el control directamente a SCAN. LOOP puede colocarse en cualquier lugar entre SCAN y ENDSCAN.

  • EXIT
    Transfiere el control del bucle SCAN ... ENDSCAN al primer comando que sigue inmediatamente a ENDSCAN. EXIT puede colocarse en cualquier lugar entre SCAN y ENDSCAN.

  • ENDSCAN
    Indica el final del procedimiento SCAN.

Observaciones

SCAN avanza automáticamente el puntero de registro al siguiente registro que cumple las condiciones especificadas y ejecuta el bloque de comandos.

Puede colocar comentarios después de ENDSCAN en la misma línea. Estos comentarios se pasan por alto durante la compilación y ejecución del programa.

SCAN ... ENDSCAN garantiza que cuando se alcance ENDSCAN, Visual FoxPro volverá a seleccionar la tabla que estaba activa cuando se inició el bucle SCAN ... ENDSCAN.

Ejemplo

El ejemplo siguiente usa un bucle SCAN ... ENDSCAN para mostrar todas las compañías de Suecia ("Sweden").

CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer  && Opens Customer table
CLEAR

SCAN FOR UPPER(country) = 'SWEDEN'
   ? contact, company, city
ENDSCAN

Vea también

DO CASE ... ENDCASE | DO WHILE ... ENDDO | FOR EACH ... ENDFOR | FOR ... ENDFOR