DBORDERINFO()
 Devuelve, y opcionalmente modifica, información acerca de órdenes y
 ficheros índice.
------------------------------------------------------------------------------
 Sintaxis

     DBORDERINFO(<nTipoInfo>, [<cFichIndice>],
        [<cOrden> | <nPosición>],
        [<expNuevosValores>])  -->  uValoresActuales

 Argumentos

     <nTipoInfo> determina el tipo de información mediante las
     constantes de la tabla siguiente. Recuerde, no obstante, que algunas de
     estas constantes no están disponibles en todos los RDD. El fichero con
     la declaración de las constantes, Dbinfo.ch, se debe incluir (#include)
      en la aplicación.

     Constantes del tipo de información acerca de índices y órdenes
     ------------------------------------------------------------------------
     Constante                      Descripción
     ------------------------------------------------------------------------
     DBOI_CONDITION                 Cadena de caracteres que representa
                                    la condición FOR del orden especificado.
     DBOI_CUSTOM                    Indicador lógico que indica si el
                                    orden está personalizado (para RDD
                                    que admiten órdenes personalizados).
                                    Para un orden estándar, este indicador
                                    puede establecerse en verdadero (.T.)
                                    en el argumento <uNuevosValores>, pero
                                    esto no significa que se haya
                                    personalizado el orden estándar. Establecer
                                    <uNuevosValores> a falso (.F.) tiene el
                                    mismo efecto que no especificar el
                                    argumento y en ambos casos
                                    se devuelven los valores actuales.
     DBOI_EXPRESSION                Cadena de caracteres que representa la
                                    expresión clave del orden.
     DBOI_FILEHANDLE                Valor numérico que representa el manejador
                                    del fichero índice especificado.
     DBOI_HPLOCKING                 Indicador lógico que indica si el fichero
                                    índice utiliza el esquema de bloqueo de
                                    índice de alto rendimiento.
     DBOI_INDEXEXT (DBOI_BAGEXT)    Cadena de caracteres que representa la
                                    extensión por defecto del fichero índice.
     DBOI_INDEXNAME (DBOI_BAGNAME)  Cadena de caracteres que representa el
                                    nombre del fichero índice.
     DBOI_ISCOND                    Indicador lógico que determina si el
                                    orden especificado se definió utilizando
                                    una condición FOR.
     DBOI_ISDESC                    Indicador lógico que determina si el
                                    orden especificado es descendente. En
                                    los controladores que admitan la
                                    configuración dinámica en tiempo de
                                    ejecución del indicador de orden
                                    descendente, es posible especificar un
                                    nuevo valor mediante
                                    DBORDERINFO(DBOI_ISDESC,
                                    [<cFichIndice>],[<cOrden> | <nPosición>],
                                    [<lNuevosValores>]). La función devuelve
                                    los anteriores valores.
     DBOI_KEYADD                    Indicador lógico que indica si una clave
                                    se ha añadido correctamente a un
                                    orden personalizado.
     DBOI_KEYCOUNT                  Número de claves de un orden especificado.
     DBOI_KEYDEC                    Número de decimales en la clave de un
                                    orden especificado.
     DBOI_KEYDELETE                 Indicador lógico que indica si una clave
                                    se ha eliminado correctamente de un
                                    orden personalizado.
     DBOI_KEYGOTO                   Indicador lógico que indica si el
                                    puntero de registro se ha movido
                                    correctamente. El registro al que se
                                    mueve el puntero se especifica por su
                                    número de registro lógico en el orden
                                    de control.
     DBOI_KEYSINCLUDED              Número de claves incluidas en el orden
                                    especificado hasta ese momento. Es sobre
                                    todo útil en órdenes condicionales.
                                    Puede utilizarse en el proceso de
                                    visualización del estado (con la cláusula
                                    EVAL del mandato INDEX).
     DBOI_KEYSIZE                   Valor numérico que especifica el tamaño
                                    de la clave del orden especificado.
     DBOI_KEYTYPE                   Cadena de caracteres que especifica el
                                    tipo de datos al que pertenece la clave
                                    del orden especificado.
     DBOI_KEYVAL                    Valor de la clave del registro actual
                                    en el orden de control.
     DBOI_LOCKOFFSET                Valor numérico que especifica el
                                    desplazamiento del bloqueo en el
                                    fichero índice especificado.
     DBOI_NAME                      Cadena de caracteres que representa el
                                    nombre del orden especificado.
     DBOI_NUMBER                    Valor numérico que representa la posición
                                    del orden especificado en la lista
                                    de órdenes.
     DBOI_ORDERCOUNT                Número de órdenes en el fichero índice
                                    especificado.
     DBOI_POSITION                  Número de registro lógico que corresponde
                                    al registro actual en el orden
                                    especificado.
     DBOI_RECNO                     Número de registro físico que corresponde
                                    al registro actual en el orden
                                    especificado.
     DBOI_SCOPEBOTTOM               Valor numérico que representa el límite
                                    inferior del ámbito de visibilidad del
                                    orden especificado.
     DBOI_SCOPEBOTTOMCLEAR          Suprime el límite inferior del ámbito
                                    de visibilidad del orden especificado.
     DBOI_SCOPETOP                  Valor numérico que representa el
                                    límite superior del ámbito de
                                    visibilidad del orden especificado.
     DBOI_SCOPETOPCLEAR             Suprime el límite superior del ámbito
                                    de visibilidad del orden.
     DBOI_SETCODEBLOCK              Código de bloque que representa la
                                    clave del orden especificado.
     DBOI_SKIPUNIQUE                Valor lógico que determina si el
                                    puntero de registro se ha movido
                                    correctamente a la clave única siguiente
                                    o anterior del orden de control.
     DBOI_UNIQUE                    Valor lógico que determina si el orden
                                    especificado tiene un conjunto de
                                    atributos únicos.
     ------------------------------------------------------------------------

     ¡Importante! DBOI_USER es una constante que devuelve el valor
     mínimo que se permite utilizar a los desarrolladores de RDD para
     definir nuevos valores de <nTipoInfo>. Los valores por debajo de
     DBOI_USER están reservados para los desarrolladores de Computer
     Associates.

     <cFichIndice> es el nombre de un fichero índice, incluidos
     opcionalmente la unidad y el directorio (no es necesario especificar la
     extensión). Este argumento puede utilizarse junto con <cOrden> para
     deshacer la ambigüedad en situaciones en las que existen dos o más
     órdenes con el mismo nombre en ficheros índice distintos.

     <cOrden> | <nPosición> es el nombre del orden acerca del que se
     quiere obtener información o un número que representa su posición en la
     lista de órdenes. En ficheros índice con un solo orden, el nombre del
     orden es el mismo que el del fichero índice. Es preferible utilizar el
     nombre del orden en vez de una posición, ya que con esta última puede
     existir confusión en ficheros índice con varios órdenes. Se ignoran los
     valores no válidos. Si no se especifica ningún fichero índice ni ningún
     orden, se utiliza por defecto el orden de control.

     <expNuevosValores> es utilizado por los RDD que, además de
     consultar, también permiten modificar la información acerca de un
     fichero. Ninguno de los RDD que se suministran con CA-Clipper admite
     este argumento. Puede omitirse o establecerse en NIL.

 Devuelve

     Si <expNuevosValores> no se especifica, DBORDERINFO() devuelve los
     parámetros actuales del fichero. Si <expNuevosValores> se especifica,
     devuelve los parámetros anteriores.

 Descripción

     DBORDERINFO() devuelve información acerca de ficheros índice y de
     órdenes. Por defecto, esta función opera en el área de trabajo
     seleccionada. Si desea utilizarla en otra área de trabajo, debe
     especificarla con una expresión de alias.

 Ejemplos

      Este ejemplo utiliza DBOI_NAME para guardar el orden de
        control actual. A continuación, establece un nuevo orden de control,
        y más tarde utiliza el valor guardado para restablecer el orden
        original:

        #include Dbinfo.ch
        USE Cliente INDEX Nombre, Serie NEW
        cOrden := DBORDERINFO(DBOI_NAME)        // Nombre
        Cliente->DBSETORDER("Serie")
        ?  DBORDERINFO(DBOI_NAME)               // Serie
        Cliente->DBSETORDER(cOrden)
        ?  DBORDERINFO(DBOI_NAME)               // Nombre

      Este ejemplo utiliza expresiones con alias para devolver la
        extensión por defecto del fichero índice en dos áreas de trabajo
        diferentes (utiliza DBOI_INDEXEXT):

        #include Dbinfo.ch
        USE Ventas INDEX Todas VIA "DBFCDX" NEW
        USE Cliente INDEX Nombre, Serie VIA "DBFNTX" NEW
        ?  Ventas->DBORDERINFO(DBOI_INDEXEXT)   //  .CDX
        ?  Cliente->DBORDERINFO(DBOI_INDEXEXT)  //  .NTX

      En este ejemplo, DBORDERINFO(DBOI_INDEXEXT) comprueba la
         existencia del fichero índice Cliente sin tener en cuenta el RDD
        enlazado en el área actual de trabajo:

        #include Dbinfo.ch

        USE Cliente NEW
        IF !FILE("Cliente" + DBORDERINFO(DBOI_INDEXEXT))
                Cliente->DBCREATEINDEX("Cliente" "NombreCliente", ;
                                      {||Cliente->NombreCliente})
        ENDIF

      Este ejemplo accede a la expresión clave de varios índices del
        mismo fichero índice:

        #include Dbinfo.ch

        USE Cliente INDEX Todos VIA "DBFMDX" NEW
        Cliente->DBSETORDER("Serie")
        ?  DBORDERINFO(DBOI_EXPRESSION,, "Nombre")
        // Resultado: expresión clave del orden por nombre
        ?  DBORDERINFO(DBOI_EXPRESSION,, "Serie")
        // Resultado: expresión clave del orden por serie

      Este ejemplo utiliza DBORDERINFO() como parte de la expresión
        clave TOTAL ON. Puesto que DBORDERINFO() devuelve la expresión como
        una cadena de caracteres, se especifica la expresión utilizando una
        expresión de macro para forzar la evaluación de la expresión clave:

        #include Dbinfo.ch

        USE Ventas INDEX Vendedor NEW
        TOTAL ON &(DBORDERINFO(DBOI_EXPRESSION)) ;
           FIELDS CantVentas TO Resumen

      En este ejemplo Todos.mdx contiene tres órdenes: ClCuenta,
         ClNombre, ClDir. Se utiliza la constante DBOI_INDEXNAME y uno de
        los órdenes para mostrar el nombre del fichero índice:

        #include Dbinfo.ch

        USE Cliente VIA "DBFNTX" NEW
        Cliente->DBSETINDEX("Todos")
        ?  DBORDERINFO(DBOI_INDEXNAME,, "ClNombre")
        // Devuelve: Todos

      El ejemplo siguiente busca ClNombre en la lista de órdenes:

        #include Dbinfo.ch

        USE Cliente VIA "DBFNTX" NEW
        Cliente->DBSETINDEX("ClCuenta")
        Cliente->DBSETINDEX("ClNombre")
        Cliente->DBSETINDEX("ClDir")
        ? DBORDERINFO(DBOI_NUMBER,, "ClNombre")        // 2

      Este ejemplo recupera la condición FOR de un orden:

        #include Dbinfo.ch

        USE Cliente NEW
        INDEX ON Cliente->Cuenta TO Cliente ;
           FOR Cliente->Cuenta > "AZZZZZ"
        ?  DBORDERINFO(DBOI_CONDITION, "Cliente")
        // Devuelve:  Cliente->Cuenta > "AZZZZZ"

 Ficheros   La biblioteca asociada es CLIPPER.LIB,
            el fichero de cabecera asociado es Dbinfo.ch.
 To download this example - click here.

See Also: DBFIELDINFO() DBINFO() DBRECORDINFO()