RECNO( )

Devuelve el número del registro actual de un área de trabajo

Sintaxis

     RECNO() –> nRegistro

Devuelve

RECNO() devuelve el número del registro actual, en forma de valor numérico entero. Si el área de trabajo contiene un fichero con cero registros, RECNO() devuelve uno, BOF() y EOF() devuelven verdadero (.T.) y LASTREC() devuelve cero.

Si el puntero se desplaza más allá del último registro, RECNO() devuelve LASTREC() + 1 y EOF() devuelve verdadero (.T.). Si se intenta desplazar antes del primer registro, RECNO() devuelve el número del primer registro lógico del fichero de base de datos y BOF() devuelve verdadero (.T.). Si no hay un fichero de base de datos abierto, RECNO() devuelve cero.

Descripción

RECNO() es una función de base de datos que devuelve el número del registro actual de un área de trabajo. En el esquema de ficheros de base de datos de DPXBASE, todos los ficheros se ordenan físicamente por los números de registro. A su vez, todas las áreas de trabajo tienen un puntero en el registro actual de su fichero abierto. RECNO() informa de este número de registro. La numeración permite acceder directamente a un registro sin tener que examinar todo el fichero para llegar al registro especificado.

RECNO() se utiliza normalmente con rutinas que procesan los registros por su número. Estas incluyen SET RELATION…TO RECNO(), que enlaza ficheros de base de datos por números de registro. GO RECNO() actualiza también los datos del registro actual del disco.

Por defecto, RECNO() opera en el área de trabajo actual. Si desea utilizarla en un área de trabajo no seleccionada, debe especificarla en una expresión de alias (consulte el ejemplo siguiente).

Ejemplos

     ¦  Este ejemplo consulta RECNO() tras desplazar intencionadamente el puntero de registro:

        USE Clientes NEW

        GO 3

        ? RECNO()                        // Resultado: 3

        GO TOP

        ? RECNO()                        // Resultado: 1

        nRegistro := 3

        GO nRegistro

        ? RECNO()                        // Resultado: 3

        GO BOTTOM

        SKIP

        ? RECNO(), LASTREC()             // Resultado: 11 10

     ¦  Este ejemplo utiliza expresiones de alias para obtener el valor de RECNO() en áreas de trabajo no seleccionadas:

        USE Ventas NEW

        USE Cliente NEW

        //

        ? Ventas->(RECNO())

        ? Cliente->(RECNO())

 Ficheros:  La biblioteca asociada es DPXBASE.CH.