DBSETINDEX( )

Abre un índice

Sintaxis

     DBSETINDEX() –> NIL

Argumentos

es un valor de caracteres que especifica el nombre del fichero índice que va a abrirse.

Devuelve

DBSETINDEX() devuelve siempre NIL.

Descripción

DBSETINDEX() abre un fichero índice en el área de trabajo actual. Todos los ficheros índice que ya estuviesen asociados con el área de trabajo continúan activos. Si el nuevo índice abierto es el único asociado al área de trabajo, se convierte en el índice de control. En caso contrario, el orden de control permanece inalterado.

Después de que se haya abierto el nuevo fichero índice, el área de trabajo se sitúa en el primer registro lógico en el orden de control.

DBSETINDEX() realiza la misma función que un mandato SET INDEX estándar o la cláusula INDEX del mandato USE. Si desea más información, consulte el mandato SET INDEX.

 Notas

     ¦  Registros lógicos: La activación de un índice afecta al orden lógico de los registros del área de trabajo. Es decir, cuando un índice está activo, los mandatos que actúan sobre los registros lógicos procesan los registros en el orden del índice. Si el índice de control es un índice con el atributo de unicidad, los registros que tengan claves de índice duplicadas no son visibles.

     ¦  Entorno de red: DBSETINDEX() abre el índice en modo compartido si el fichero de base de datos asociado fue abierto en modo compartido. De lo contrario, el índice se abre en modo exclusivo.

 Ejemplos

     ¦  El ejemplo siguiente establece índices múltiples:

     cApellido := “López”

        DBUSEAREA(.T., “DBFNTX”, “Ventas”, “Ventas”, .T.)

        DBSETINDEX( “NOMBRE” )

        DBSETINDEX( “APELLIDO” )

        //

        IF ( Ventas->(DBSEEK(cApellido)) )

           IF Ventas->( DELETED() ) .AND. Ventas->( RLOCK() )

              Ventas->( DBRECALL() )

              ? “Se ha recuperado el registro borrado.”

           ENDIF

 

        ELSE

           ? “No encontrado”

        ENDIF

 Ficheros:  La biblioteca asociada es DPXBASE.CH.