SET ORDER
 Selecciona el orden de control
------------------------------------------------------------------------------
 Sintaxis

     SET ORDER TO [<nOrden> | [TAG <cNombreOrden>]
        [IN <xcNombreContenedorOrd>]]

 Argumentos

     TAG es una cláusula opcional que proporciona compatibilidad con los
     RDD que acceden a contenedores con varios órdenes. Se debe usar siempre
     que se especifique <cNombreOrden>.

     <cNombreOrden> es el nombre de un orden, una ordenación lógica de
     la base de datos de acuerdo con una clave. Este orden será el orden de
     control de la lista de órdenes. Si se especifica <cNombreOrden>, debe
     hacerse con la palabra clave TAG.

     Nota: En dBASE y FoxPro la cláusula TAG es totalmente opcional.

     <nOrden> es el número que corresponde al orden destino en la lista
     de órdenes. Es posible identificar al orden mediante un número o una
     cadena de caracteres entre comillas.

     IN <xcNombreContenedorOrd> es el nombre de un fichero en disco que
     contiene uno o más órdenes. La vía de acceso o la extensión del nombre
     del fichero es opcional. Si no se incluye la extensión, CA-Clipper
     utiliza la extensión por defecto del RDD actual.

 Descripción

     Al seleccionar un nuevo orden (índice) de control, los órdenes
     restantes se actualizan al insertar o añadir registros. Esto sucede aun
     en el caso de que se ejecute SET ORDER TO 0. Después de cambiar el
     orden de control, el puntero del registro sigue apuntando al mismo
     registro.

     SET ORDER TO 0 restablece el orden natural de la base de datos, pero
     deja todos los órdenes abiertos. Si se llama a SET ORDER TO sin
     argumentos, se cierran todos los órdenes y se vacía la lista de
     órdenes.

     Aunque está permitido utilizar <cNombreOrden> y <nOrden> como
     identificadores del orden que se va a seleccionar, se ha mantenido el
     argumento <nOrden> por compatibilidad con versiones anteriores de
     CA-Clipper. La utilización de <cNombreOrden> garantiza un acceso
     correcto a los órdenes de la lista de órdenes.

     Si se especifica <xcNombreContenedorOrd>, sólo se trabaja con los
     órdenes pertenecientes a la lista del contenedor de órdenes. Si en la
     aplicación se utilizan nombres de órdenes únicos, no tiene que
     especificar <xcNombreContenedorOrd>.

     Utilice la función ORDSETFOCUS() para conocer el orden de control.

     En RDDS que admitan índices de producción o estructurales (p. ej.,
     DBFCDX), al especificar un tag pero no un contenedor de órdenes, se
     crea el tag y se añade al contenedor de órdenes. Si no existe ningún
     índice de producción o estructural, se creará uno para añadirle el tag.
     Al utilizar RDDS que admitan contenedores con varios órdenes, se debe
     establecer explícitamente el orden de control deseado utilizando SET
     ORDER (o ORDSETFOCUS()). Si no se especifica un orden de control, los
     datos se procesarán en el orden natural.

     Se puede utilizar SET ORDER, en lugar de la cláusula INDEX del mandato
     USE, para abrir órdenes en un entorno de red. Normalmente, se ejecuta
     USE y se comprueba si se ha ejecutado satisfactoriamente. En caso
     afirmativo, se abren los órdenes asociados con el mandato SET ORDER.
     Consulte el ejemplo siguiente.

 Ejemplos

     USE Cliente NEW
     IF (! NETERR())
        SET ORDER TO Cliente
     ENDIF
     SET ORDER TO "ClCuenta"        // ClCuenta es un orden en Cliente

Ficheros   La biblioteca asociada es CLIPPER.LIB.

 To download this example - click here.

See Also: INDEX INDEXORD() SEEK SET INDEX USE