martes, 31 de agosto de 2010

Comandos Set de Visual Foxpro





 SET ANSI 

Determina cómo se hacen las comparaciones de cadenas de distintas longitudes utilizando el operador = en comandos SQL de Visual FoxPro.
SET ANSI ON | OFF

Parámetros

 

ON

 

Rellena la cadena más corta con los espacios en blanco necesarios para igualar la longitud de la cadena más larga. Las dos cadenas se comparan carácter a carácter en toda su longitud. Fíjese en esta comparación: 

'Tommy' = 'Tom' 
 
El resultado es falso (.F.) si SET ANSI está activado porque, al 
rellenarse, ‘Tom’ se convierte en ‘Tom ’ y las cadenas ‘Tom ’ y ‘Tommy’ 
no coinciden carácter a carácter. 
 
El operador = = utiliza este método para las comparaciones 
de los comandos SQL de Visual FoxPro.
 
OFF 
 
Especifica que la cadena más corta no se rellenará con espacios en 
blanco. Las dos cadenas se comparan carácter a carácter hasta llegar al 
final de la cadena más corta. Fíjese en esta comparación:
'Tommy' = 'Tom'
El resultado es verdadero (.T.) cuando SET ANSI está desactivado
porque la comparación termina después de ‘Tom’.
 
 

Observaciones




SET ANSI determina si se rellenará con espacios en blanco la cadena más corta para hacer la comparación de una cadena SQL. SET ANSI no tiene efecto sobre el operador ==; cuando utilice el operador ==, la cadena más corta se rellenará siempre con espacios al hacer la comparación.
SET ANSI tiene como alcance la sesión de datos actual.

SET ANSI y el Diseñador de consultas   Visual FoxPro crea un comando SELECT - SQL en el Diseñador de consultas cuando usted crea una consulta. Al crear condiciones de unión y filtro, si elige las opciones Igual o Exactamente como, el operador = o = = se incluirá en el comando SELECT generado. La configuración de SET ANSI puede afectar al resultado de las consultas que cree y realice en el Diseñador de consultas.

Orden de las cadenas   En los comandos SQL, el orden de izquierda a derecha de las dos cadenas en una comparación es irrelevante: cambiar una cadena de un lado a otro del operador = o = = no influye en el resultado de la comparación.
 
 
 
SET BLOCKSIZE 
 
Especifica cómo asigna Visual FoxPro el espacio en disco para 
el almacenamiento de los campos memo.
 
SET BLOCKSIZE TO nBytes

Parámetros

nBytes 
Especifica el tamaño de los bloques en los que se asigna espacio en disco para los campos memo. Si nBytes es 0, el espacio en disco se asigna en bytes únicos (bloques de 1 byte). Si nBytes es un entero entre 1 y 32, el espacio en disco se asignará en bloques de nBytes bytes multiplicado por 512. Si nBytes es mayor que 32, el espacio en disco se asignará en bloques de nBytes bytes.
Si especifica un valor de tamaño de bloque mayor que 32, ahorrará mucho espacio en disco.

Observaciones

El valor predeterminado de SET BLOCKSIZE es 64. Para restablecer el tamaño de bloque a un valor diferente después de que se ha creado el archivo, establezca el nuevo valor y luego utilice COPY para crear una nueva tabla. La tabla nueva tendrá el tamaño de bloque especificado.
SET BLOCKSIZE tiene como alcance la sesión actual de datos.



















SET COLLATE


Especifica una secuencia de intercalación para los campos de caracteres en operaciones posteriores de indizado y orden.
SET COLLATE TO cSequenceName

Parámetros

 

 

cSequenceName  

 

Especifica una secuencia de intercalación. Dispone de las siguientes opciones de secuencias de intercalación.

 

 

Opciones Idioma
ARABICÁrabe
CZECHCheco
DUTCHHolandés
GENERALInglés, francés, alemán, español moderno, portugués y otros idiomas de Europa occidental
GERMANOrden de la guía telefónica alemana (DIN)
GREEKGriego
HEBREWHebreo
HUNGARYHúngaro
ICELANDIslandés
JAPANESEJaponés
KOREANCoreano
MACHINEMáquina (es la secuencia de intercalación predeterminada para versiones anteriores de FoxPro)
NORDANNoruego, danés
PINYINChino simplificado
POLISHPolaco
RUSSIANRuso
SLOVAKEslovaco
SPANISHEspañol tradicional
STROKEChino tradicional y simplificado
SWEFINSueco, finlandés
THAITailandés
TURKISHTurco
UNIQWTPeso único

 

 

Nota    

Cuando especifique la opción SPANISH, “ch” se considerará una sola letra ordenada entre la “c” y la “d”, y la “ll” se intercalará entre la “l” y la “m”. Si especifica una opción de secuencia de intercalación como una cadena de caracteres literales, asegúrese de incluir la opción entre comillas:

SET COLLATE TO "SWEFIN"
MACHINE es la opción de secuencia de intercalación predeterminada, y  es la secuencia con la que están familiarizados los usuarios de Xbase.  Los caracteres se ordenan tal y como aparecen en la página de códigos  actual.

GENERAL puede ser preferible para los usuarios de EE.UU. y de Europa occidental. Los caracteres se ordenan tal y como aparecen en la página de códigos actual. Es posible que en versiones de FoxPro anteriores a la 2.5 haya utilizado UPPER( ) o LOWER( ) en campos de caracteres al crear índices. En versiones de FoxPro posteriores a la 2.5, puede especificar en su lugar la opción de secuencia de intercalación GENERAL y omitir la conversión UPPER( ).

Si especifica una opción de secuencia de intercalación distinta de MACHINE y crea un archivo .idx, siempre se creará un .idx compacto.

Use SET(“COLLATE”) para volver a la secuencia de intercalación actual.
Si incluye la siguiente línea en el archivo de configuración de Visual FoxPro, se especificará una secuencia de intercalación al iniciar Visual FoxPro:

COLLATE = cSequenceName
 
Esto es lo mismo que ejecutar el siguiente comando: 
 
SET COLLATE TO cSequenceName

Observaciones

SET COLLATE le permite ordenar tablas que contienen caracteres acentuados en cualquiera de los idiomas admitidos. Cambiar la configuración de SET COLLATE no afecta a la secuencia de intercalación de índices abiertos con anterioridad. Visual FoxPro mantiene automáticamente los índices existentes, proporcionando flexibilidad para crear muchos tipos distintos de índices, incluso para el mismo campo.

Por ejemplo, si se crea un índice con SET COLLATE definido como GENERAL y posteriormente se cambia el valor de configuración de SET COLLATE a SPANISH, el índice conservará la secuencia de intercalación GENERAL.

SET COLLATE tiene como alcance la sesión actual de datos.

Al utilizar el comando SET COLLATE TO, podría recibir el error “No se encuentra la secuencia de intercalación <nombre_secuencia>.” Esto sucede cuando se intenta utilizar una secuencia de intercalación incompatible con la página de códigos actual. Para evitar este error, debe especificar una página de códigos compatible en el archivo de configuración de Visual FoxPro. Por ejemplo, podría aparecer el error “No se encuentra la secuencia de intercalación 'CZECH'” al ejecutar el comando SET COLLATE TO 'CZECH'.
Para habilitar la compatibilidad con la secuencia de intercalación del checo, agregue la siguiente línea al archivo config.fpw y reinicie Visual FoxPro:
CODEPAGE = 1250
 
 
 
 
 
SET DELETED
 
Especifica si Visual FoxPro procesará o no los registros marcados para su eliminación, y si estarán disponibles o no para utilizarse en otros comandos.
SET DELETED ON | OFF

Parámetros

 

 

ON

 

 

Especifica que los comandos que realizan operaciones en registros (incluidos los registros de las tablas relacionadas) utilizando un alcance pasen por alto los registros marcados para su eliminación.

 

 

OFF

 

 

(Predeterminado) Especifica que puedan tener acceso a los registros marcados para eliminación los comandos que actúan sobre registros (incluidos los registros de las tablas relacionadas), utilizando un alcance.




Observaciones

 

Las consultas que utilizan DELETED( ) para comprobar el estado de los registros pueden optimizarse utilizando la tecnología Rushmore si la tabla está indizada en DELETED( ). 

Puede marcar registros para su eliminación ejecutando DELETE - SQL o DELETE, o eligiendo Eliminar registros... en el menú Tabla desde una ventana Examinar o Modificar.
Puede recuperar registros ejecutando RECALL o eligiendo Desmarcar registros... en el menú Tabla de una ventana Examinar o Modificar. 

Nota  
SET DELETED se pasa por alto si el alcance predeterminado del comando es el registro actual o si incluye un alcance de un único registro. INDEX y REINDEX siempre pasan por alto SET DELETED e indizan todos los registros de la tabla.

SET DELETED tiene como alcance la sesión actual de datos.











SET EXACT

Especifica las reglas que utiliza Visual FoxPro al comparar dos cadenas de diferente longitud.
SET EXACT ON | OFF

Parámetros

 

ON

Especifica que las expresiones deben coincidir carácter a carácter para que se consideren equivalentes. La comparación pasa por alto los espacios en blanco finales que puedan existir en las expresiones. Para la comparación, la más corta de las dos expresiones se rellena por la derecha con espacios en blanco hasta igualar la longitud de la expresión más larga.


OFF
(Predeterminado) Especifica que, para que se consideren equivalentes, las
expresiones deben coincidir carácter a carácter hasta llegar al final 
de la expresión del lado derecho.
 

Observaciones

La configuración de SET EXACT no tiene efecto si ambas cadenas tienen la misma longitud.

Comparaciones de cadenas
Visual FoxPro tiene dos operadores relacionales para probar la igualdad. El operador = realiza una comparación entre dos valores del mismo tipo. Este operador es apropiado para comparar datos de tipo Character, Numeric, Date y Logical.


Sin embargo, cuando compara expresiones de tipo Character con el operador =, el resultado puede no ser exactamente el que usted espera. Las expresiones Character se comparan carácter a carácter de izquierda a derecha hasta que una de las los expresiones no es igual a la otra, hasta que se llega al final de la expresión que hay al lado derecho del operador = (SET EXACT OFF) o hasta que se llega al final de las dos expresiones (SET EXACT ON).


El operador = = puede utilizarse cuando se necesita una comparación exacta de datos de tipo Character. Al comparar dos expresiones de caracteres con el operador ==, las expresiones a ambos lados de dicho operador se consideran iguales si contienen exactamente los mismos caracteres, incluidos los espacios en blanco. La configuración de SET EXACT se pasa por alto al comparar cadenas de caracteres con el operador ==.


La tabla siguiente muestra cómo afecta a las comparaciones la elección del operador y la configuración de SET EXACT. (Los subrayados representan espacios en blanco.)
 
 
Comparación= EXACT OFF= EXACT ON== EXACT ON o OFF
“abc” = “abc”CoincideCoincideCoincide
“ab” = “abc”No coincideNo coincideNo coincide
“abc” = “ab”CoincideNo coincideNo coincide
“abc” = “ab_”No coincideNo coincideNo coincide
“ab” = “ab_”No coincideCoincideNo coincide
“ab_” = “ab”CoincideCoincideNo coincide
“” = “ab”No coincideNo coincideNo coincide
“ab” = “”CoincideNo coincideNo coincide
"__" = ""CoincideCoincideNo coincide
"" = "___"No coincideCoincideNo coincide
TRIM(“___”) = “”CoincideCoincideCoincide
“” = TRIM(“___”)CoincideCoincideCoincide





SET EXACT tiene como alcance la sesión actual de datos.



SET EXCLUSIVE  

 

Especifica si Visual FoxPro abre los archivos de tabla para uso exclusivo o compartido en una red.

SET EXCLUSIVE ON | OFF

Parámetros

ON
 
(El valor predeterminado para la sesión de datos global.) Limita el acceso a una tabla abierta en red al usuario que la abrió. Otros usuarios de la red no tienen acceso a la tabla. A diferencia de FLOCK( ), SET EXCLUSIVE ON impide también que otros usuarios tengan acceso de sólo lectura. También puede abrirse un archivo en una red para uso exclusivo incluyendo la cláusula EXCLUSIVE con el comando USE. No es necesario realizar un bloqueo de registro o archivo en una tabla abierta para uso exclusivo.  
 
 
Al abrir una tabla para uso exclusivo se asegura que otros usuarios no puedan cambiar el archivo. Algunos comandos no pueden ejecutarse a menos que se abra una tabla para uso exclusivo. Estos comandos son INSERT, INSERT BLANK, MODIFY STRUCTURE, PACK, REINDEX y ZAP. 
 
 
OFF
 
 
(El valor predeterminado para una sesión de datos privada.) Permite que cualquier usuario de la red pueda compartir y modificar una tabla abierta en red. 
 
 

Observaciones

Al cambiar la configuración de SET EXCLUSIVE no cambiará el estado de las tablas abiertas previamente. Por ejemplo, si una tabla se abre con SET EXCLUSIVE ON y SET EXCLUSIVE se cambia posteriormente a OFF, la tabla mantendrá su estado de uso exclusivo.
SET EXCLUSIVE tiene como alcance la sesión actual de datos.
 

 

 

 

 

 

 

 SET FULLPATH

 

 

Especifica si CDX( ), DBF( ), MDX( ) y NDX( ) devuelven la ruta de acceso en un nombre de archivo.

SET FULLPATH ON | OFF

 

 

Parámetros

 

ON
 
(Predeterminado) Especifica que CDX( ), DBF( ), IDX( ) y NDX( ) devuelven el designador de unidad, la ruta de acceso y el nombre del archivo.
 
 
OFF
 
Solamente se devolverá el designador de unidad y el nombre de archivo.
 
 
 
 
 
 
 
SET MULTILOCKS




Determina si puede bloquear múltiples registros con LOCK( ) o RLOCK( ).
SET MULTILOCKS ON | OFF

Parámetros


ON
 
 
Le permite intentar bloquear un conjunto de registros. Para intentar bloquear varios registros, incluya una serie de números de registro en LOCK( ) o RLOCK( )..
 
 
 
 
OFF
 
 

(Predeterminado) Le permite intentar bloquear un registro único con LOCK( ) o RLOCK( ).

 

 

Observaciones

 

Cuando se abre una tabla para uso compartido en una red, puede intentar bloquear más de un registro de un archivo de tabla. La configuración de SET MULTILOCKS determina si puede intentar bloquear un registro único o un conjunto de registros. Los registros pueden bloquearse con la función LOCK( ) o RLOCK( ).




Nota 


Al conmutar SET MULTILOCKS de ON a OFF o de OFF a ON, se ejecuta implícitamente UNLOCK ALL; es decir, se liberan todos los registros bloqueados de todas las áreas de trabajo.



SET MULTILOCKS alcanza la sesión de datos actual.



Es necesario que MULTILOCKS esté en ON antes de activar el almacenamiento de filas o de tablas en búfer con CURSORSETPROP( ). Para obtener más información acerca del almacenamiento de filas y tablas en búfer, vea CURSORSETPROP( ).



Si activa la casilla de verificación Activar almacenamiento de datos en búfer en el cuadro de diálogo Propiedades del área de trabajo (que aparece al elegir el botón Propiedades en la ventana Sesión de datos), MULTILOCKS se establecerá automáticamente en ON para la sesión de datos actual. Sin embargo, el hecho de desactivar la casilla de verificación Activar almacenamiento de datos en búfer no establece MULTILOCKS en OFF para la sesión de datos actual.
 

                          SET NULL 

Determina si los comandos ALTER TABLE, CREATE TABLE e INSERT - SQL admiten valores NULL.

SET NULL ON | OFF

Parámetros

 

ON
 
Especifica que todas las columnas de una tabla creadas con ALTER TABLE y CREATE TABLE permiten valores NULL. Es posible anular el soporte para valores NULL para columnas de la tabla incluyendo la cláusula NOT NULL en las definiciones de columnas. 
 
 
Además, especifica que INSERT - SQL intentará insertar valores NULL en cualquier columna que no esté incluida en la cláusula INSERT - SQL VALUE. INSERT - SQL sólo podrá insertar correctamente valores NULL en columnas que admitan valores NULL. 
 
 
 
OFF
 
 
(Predeterminado) Especifica que todas las columnas de una tabla creada con ALTER TABLE y CREATE TABLE no admiten valores NULL. Es posible designar soporte de valores NULL para columnas en ALTER TABLE y CREATE TABLE incluyendo la cláusula NULL en las definiciones de columnas.
 
 
Asimismo, especifica que INSERT - SQL insertará valores en blanco en las columnas no incluidas en la cláusula INSERT - SQL VALUE.
 
 
 
 
Nota   
 
Si agrega soporte para valores NULL en una o varias columnas de una tabla, el límite de número de columnas para dicha tabla disminuirá de 255 a 254.
 
 

Observaciones

SET NULL sólo afecta al soporte para valores NULL de ALTER TABLE, CREATE TABLE e INSERT - SQL. Otros comandos no se ven afectados por SET NULL. SET NULL tiene como alcance la sesión actual de datos.











Ejemplo

El ejemplo siguiente demuestra cómo afecta SET NULL al soporte de valores NULL. La primera tabla, employee, se crea con SET NULL ON, por lo que sus campos aceptan valores NULL. Se usa REPLACE para situar un valor NULL en el campo cLastName. La segunda tabla, staff, se crea con SET NULL OFF, por lo que sus campos no aceptan valores NULL. Se usa REPLACE para colocar cero en el campo  


















cLastName.
CLOSE DATABASES
SET NULL ON        && Fields will support null values
CREATE TABLE employee (cLastName C(20), ySalary Y(12,2))
APPEND BLANK       && Add a new blank record
REPLACE cLastName WITH .NULL.  && cLastName supports null values

SET NULL OFF       && Fields will not support null values
CREATE TABLE staff (cLastName C(20), ySalary Y(12,2))
APPEND BLANK       && Add a new blank record
REPLACE cLastName WITH 0   && Doesn't support null values

 SET PATH
Especifica una ruta de acceso para buscar archivos.
SET PATH TO [Path]

 

 

 

Parámetros

 

 

 

TO [Path]
Especifica los directorios en los que desea que busque Visual FoxPro. Use comas o punto y coma para separar los directorios.
Nota   Visual FoxPro no reconocerá correctamente un nombre de ruta de acceso si el nombre del disco o del directorio contiene un signo de admiración (!).
En todas las plataformas FoxPro, las funciones que devuelven información acerca de las rutas de acceso, como CURDIR( ), DBF( ) y SYS(2003), utilizan convenciones de denominación de rutas de acceso de MS-DOS en los valores que devuelven.

 

 

 

 

Observaciones

Ejecute SET PATH TO sin Path para restaurar la ruta de acceso al directorio predeterminado. Use SET DEFAULT para especificar el directorio predeterminado y CURDIR( ) para devolver el directorio predeterminado actual.
SET PATH no tiene como alcance la sesión de datos actual; los cambios realizados en la ruta de acceso predeterminada con el comando SET PATH afectarán a todas las sesiones de datos.







SET REPROCESS
 Especifica cuántas veces o durante cuánto tiempo intenta Visual FoxPro  bloquear un archivo o un registro después de que fracase un intento de  bloqueo.
SET REPROCESS TO nAttempts [SECONDS] [SYSTEM] | TO AUTOMATIC [SYSTEM]

 

 

Parámetros

 

 

 

TO nAttempts [SECONDS]
Especifica el número de veces que Visual FoxPro intenta bloquear un registro o un archivo después de un intento fracasado. El valor predeterminado es 0 y el valor máximo es 32.000. SECONDS especifica que Visual FoxPro intenta bloquear un archivo o registro durante nAttempts segundos. Solamente está disponible cuando nAttempts es mayor que cero. Por ejemplo, si nAttempts es 30, Visual FoxPro intentará bloquear un registro o archivo hasta 30 veces. Si también incluye SECONDS (SET REPROCESS TO 30 SECONDS), Visual FoxPro intentará bloquear continuamente un registro o archivo durante un máximo de 30 segundos. Aparece un mensaje del sistema (“Esperando bloqueo... ”) si SET STATUS está en ON. Si hay una rutina ON ERROR activa y fracasan los intentos realizados por el comando para bloquear el registro o archivo, se ejecutará la rutina ON ERROR. Sin embargo, si una función intenta establecer el bloqueo, no se ejecutará la rutina y la función devolverá falso (.F.). Si no hay ninguna rutina ON ERROR activa, un comando intenta bloquear el registro o archivo, y este bloqueo no se puede realizar, aparecerá una alerta adecuada (por ejemplo,“El registro está siendo utilizado por otra persona”). Si una función intenta realizar el bloqueo, la alerta no se mostrará y la función devolverá falso (.F.). Si nAttempts es 0 (el valor predeterminado) y ejecuta un comando o función que intenta bloquear un registro o archivo, Visual FoxPro intentará bloquear el registro o archivo indefinidamente. Visual FoxPro muestra el mensaje del sistema, “Intentando bloquear... Presione Esc para cancelar,” mientras intenta bloquear el registro o el archivo. El bloqueo se realiza y el mensaje del sistema se borra si el registro o el archivo llegan a estar disponibles para bloquearse mientras espera. Si una función intenta realizar el bloqueo, devolverá verdadero (.T.). Si presiona ESC en respuesta al mensaje del sistema, aparecerá una alerta adecuada (por ejemplo, “El registro está siendo utilizado por otra persona”). Si una función intenta realizar el bloqueo, la alerta no se mostrará y la función devolverá falso (.F.). Si hay una rutina ON ERROR activa y un comando intenta bloquear el registro o el archivo, la rutina ON ERROR tendrá preferencia sobre otros intentos para bloquear el registro o el archivo. La rutina ON ERROR se ejecuta inmediatamente. Visual FoxPro no intenta realizar bloqueos adicionales de registros ni de archivos, y no muestra el mensaje del sistema. Si nAttempts es –1, Visual FoxPro intentará bloquear el registro o archivo indefinidamente. No podrá cancelar los intentos de bloqueo presionando la tecla ESC y no se ejecutará ninguna rutina ON ERROR. Cuando nAttempts está establecido en –2, equivale a la utilización de la cláusula TO AUTOMATIC. Visual FoxPro solamente muestra el mensaje del sistema “Esperando bloqueo ... ” si SET STATUS está en ON. Si otro usuario ha establecido un bloqueo en el registro o archivo que intenta bloquear, deberá esperar  hasta que el otro usuario libere el bloqueo.
TO AUTOMATIC
Especifica que Visual FoxPro intenta bloquear indefinidamente el registro o el archivo (lo que equivale a establecer nAttempts en –2). Esta cláusula se parece al establecimiento de nAttempts a -1, excepto porque incluye la posibilidad de salir del intento de bloquear un registro o un archivo. El mensaje del sistema “Intentando bloquear... Presione Esc para cancelar” aparece mientras Visual FoxPro intenta bloquear el registro o archivo. El bloqueo se realiza y el mensaje del sistema se borra si el registro o el archivo llegan a estar disponibles para bloquearse mientras espera. Si se utiliza una función para establecer el bloqueo, la función devolverá verdadero (.T.). Si no hay una rutina ON ERROR activa y presiona ESC en respuesta al mensaje del sistema, se mostrará la alerta apropiada (por ejemplo, “El registro está siendo utilizado por otra persona”). Si una función intenta realizar el bloqueo, la alerta no se mostrará y la función devolverá falso (.F.). Si una rutina ON ERROR está activa y presiona ESC, se ejecutará la rutina ON ERROR. Si una función intenta establecer el bloqueo, no se ejecutará la rutina ON ERROR y la función devolverá falso (.F.).
SYSTEM
Especifica que SET REPROCESS se aplica a la sesión de datos del sistema, que controla las tablas utilizadas internamente, como una base de datos, FOXUSER, archivos .scx, etc. Para obtener más información acerca del bloqueo de registros y archivos, así como del uso compartido de tablas en una red.

Observaciones

Un bloqueo de registro o de archivo no siempre se consigue en el primer intento. Con frecuencia, un registro o archivo está bloqueado por otro usuario de la red. SET REPROCESS determina si Visual FoxPro debe realizar más intentos de bloquear el registro o archivo cuando fracasa el primer intento. Puede especificar cuántos intentos más se harán o durante cuánto tiempo se intentará. Una rutina ON ERROR afecta a cómo se controlan los intentos de bloqueo fracasados.
SET REPROCESS tiene como alcance la sesión actual de datos. SET REPROCESS SYSTEM tiene como alcance la sesión de datos del sistema.
Nota   Los cambios realizados en la ficha Datos del cuadro de diálogo Opciones de herramientas sólo afectan a la sesión actual.







Ejemplo:

 

 

 

 

SET ("REPROCESS")      && Returns the current session setting
SET("REPROCESS",1)   && Returns the system session setting

* In the config.fpw file, the following code changes the default session.
REPROCESS = 100

 


 

 

 

 


 

 

No hay comentarios:

Publicar un comentario