Free Web Hosting Provider - Web Hosting - E-commerce - High Speed Internet - Free Web Page
Search the Web

FoxCarlos : Preguntas Prefuentes VFP

FoxCarlos
Preguntas Prefuentes VFP [Previous Page] [Next Page] [Up] [Home Page] [Mail]

Preguntas frecuentes para
la versión 5.0 de Microsoft Visual FoxPro para Windows

Estas son algunas de las preguntas más frecuentes sobre Visual FoxPro. Examine esta lista antes de llamar al servicio de soporte técnico de Microsoft. Para imprimir estas notas, elija Imprimir tema en el menú Archivo.

Pregunta 1: ¿Cómo puedo ocultar el escritorio de Visual FoxPro cuando se inicia el archivo .EXE de mi aplicación?

Respuesta: Coloque la siguiente línea en el archivo de configuración CONFIG.FPW:

SCREEN=OFF

Nota: Si no tiene que proporcionar CONFIG.FPW como un archivo independiente, es decir, no tiene que realizar modificaciones en él después de haber generado el .EXE, puede agregar el archivo CONFIG.FPW
al proyecto, asegurándose de que está marcado como incluido, y se generará como parte del .EXE.

Pregunta 2: ¿Cómo puedo crear un formulario de nivel superior con un menú de nivel superior?

Respuesta: Para crear un formulario de nivel superior, establezca la propiedad ShowWindow del formulario a 2-Como formulario de nivel superior. Para crear un menú de nivel superior abra el Diseñador de menús. En el menú Ver, elija Opciones generales y, a continuación, establezca la opción
Formulario de nivel superior. Para colocar el menú de nivel superior en el formulario de nivel superior, escriba el siguiente código en el evento Init del formulario:

DO <nombre de menú.mpr> with THIS


regunta 3: Algunos de los formularios de los archivos de ejemplo Soluciones no muestran correctamente los títulos de etiqueta o control. ¿A qué se debe esto?

Respuesta: Los formularios del ejemplo Soluciones están diseñados para mostrarse correctamente con la configuración de fuentes predeterminada de Windows (fuente pequeña). Si utiliza fuente grande, algunos formularios no se mostrarán correctamente. Para utilizar fuente pequeña, haga doble clic en
el icono Pantalla del Panel de control y, a continuación, elija la ficha Configuración en el cuadro de diálogo Pantalla. En la lista desplegable Tamaño de fuente, elija Fuente pequeña.


Pregunta 4: Si edito o ejecuto mis formularios de Visual FoxPro 3.0 en Visual FoxPro 5.0, las fuentes son
más pequeñas y no aparecen en negrita. ¿Por qué ocurre esto y como puedo evitarlo?

Respuesta: Para permitirle crear fácilmente formularios compatibles con el estándar Windows 95, se han modificado varios valores de propiedad predeterminados para los controles, incluyendo FontSize, FontBold y ColorSource. Si se establecieron a valores predeterminados en Visual FoxPro 3.0, permanecerán predeterminadas en Visual FoxPro 5.0. Sin embargo, como los valores predeterminados son diferentes, el texto se mostrará de forma diferente.

Si desea que los formularios tengan la misma apariencia que en Visual FoxPro 3.0, conviértalos como parte de un proyecto. A continuación, cuando abra el proyecto Visual FoxPro 3.0 en Visual FoxPro 5.0, marque la casilla de verificación Mantener los valores de las propiedades predeterminadas de Visual FoxPro 3.0 en el Converter.


Pregunta 5: ¿Por qué se llama esta versión Microsoft Visual FoxPro 5.0 en lugar de Microsoft Visual FoxPro 4.0?

Respuesta: Esto se hizo para sincronizar el número de versión de Visual FoxPro con otros productos de Microsoft tales como Visual Basic.


Pregunta 6: El Asistente para aplicaciones no aparece cuando selecciono
Asistentes en el menú Herramientas. ¿Cómo lo puedo ejecutar?

Respuesta: Para ejecutar el Asistente para aplicaciones, elija Asistentes en el menú Herramientas y, a continuación, elija Todos en el submenú. Esto abre el cuadro Selección de los asistentes en el que puede seleccionar el Asistente para aplicaciones.



Pregunta 7: ¿Tengo que utilizar la opción Unirse a proyecto de control de código de origen en el menú Proyecto cada vez que abro un proyecto de Visual FoxPro que está bajo de control de código de origen?

Respuesta: No, esto se hace sólo una vez. Cuando selecciona Unirse a proyecto de control de código de origen, Visual FoxPro crea una copia del archivo (.PJX) del proyecto existente en el disco local en el directorio de trabajo del proyecto. (Visual FoxPro también crea una lista de
archivos de proyecto, archivo .PJM ("project metafile"), que utiliza para administrar las modificaciones realizadas por varios programadores en la lista de archivos del proyecto). Cuando se haya unido al proyecto, puede abrirlo como hace habitualmente y Visual FoxPro reconocerá que está bajo control de código origen.




Pregunta 8: Cuando agrego un archivo a un proyecto Visual FoxPro bajo control de código de origen, obtengo el siguiente mensaje de error:

"El archivo <nombre del archivo> no pudo ser asignado al proyecto SourceSafe $/<nombre del
proyecto>"

Le sigue al mensaje anterior este otro en la ventana de Resultados del control de código de origen:

"Error de API SCC 'No se realizó la operación' en el archivo <nombre del archivo>."

El archivo agregado no está visible para otros usuarios que comparten el proyecto, incluso después de elegir Actualizar la lista de proyectos. ¿Qué es lo que pasa?

Respuesta: Cuando agregue archivos a un proyecto de Visual FoxPro bajo control de código de origen, guárdelos en el directorio de trabajo en el que se creó la copia del proyecto actual.




Pregunta 9: Acabo de agregar un archivo al proyecto Visual FoxPro bajo control de código de origen y también he agregado el archivo al control de código de origen, pero está visible para otros usuarios que comparten el
proyecto. ¿Qué es lo que pasa?

Respuesta: Después de crear un nuevo archivo o agregar un archivo a un proyecto, debe actualizar el archivo de lista del proyecto (archivo .PJM) para que el archivo nuevo o agregado sea visible para los otros usuarios. En el submenú Control de código de origen del menú Proyecto, elija Actualizar la lista de proyecto. Visual FoxPro combina su lista de archivos de proyecto local con la que está almacenada centralmente. Los otros usuarios también tendrán que hacer lo mismo. Cuando lo hagan, Visual FoxPro combinará sus modificaciones con su archivo de lista de proyecto local (.PJM) y vuelve a generar su archivo de proyecto local (.PJM).




Pregunta 10: ¿Qué es una vista fuera de línea y para qué la puedo utilizar?

Respuesta: Una vista fuera de línea le permite obtener un snapshot de una tabla y manipularlo sin tener que estar conectado a la tabla host. Cuando haya terminado con la tabla, puede conectarse otra vez al host y sincronizar la vista con la tabla host. Al utilizar vistas fuera de línea puede:

* Duplicar un subconjunto de datos de una tabla de Visual FoxPro o de un origen de datos remotos.
* Manipular el subconjunto replicado de forma interactiva o a través de una aplicación.
* Compartir una tabla de búfer de cambios mientras está fuera de línea.
* Volver a conectarse al origen de datos apropiado.
* Actualizar por lotes las tablas locales o remotas.

Estas características pueden ser muy útiles si tiene que trabajar con un pequeño conjunto de datos sin estar conectado físicamente a su origen (por ejemplo, cuando está de viaje o trabaja fuera de su oficina y tiene que trabajar con los datos más actuales de una tabla).


Pregunta 11: Estoy utilizando la función SYS(3054,1) y no proporciona información de optimización para una instrucción SQL al utilizar la cláusula JOIN. ¿Por qué no?

Respuesta: Utilice 11 como segundo parámetro en lugar de 1.


Pregunta 12: Al utilizar SQL, estoy intentando crear una combinación izquierda de múltiples tablas en una tabla. La consulta funciona si todas las tablas utilizadas por la consulta están abiertas, pero produce errores si algunas de las tablas no están abiertas. Si todas las tablas están
abiertas, no obtengo errores, pero los resultados no son correctos. ¿Por qué no?

Respuesta: Seguramente está utilizando una instrucción que intenta una autocombinación utilizando alias de tabla mientras intenta hacer una combinación izquierda de todas las tablas en una tabla. Su instrucción SQL puede parecerse a esto:

select one.firstname as first, one.lastname as second,;
two.firstname as third, two.lastname as fourth;
from FirstTable;
left outer join SecondTable one;
left outer join SecondTable two;
left outer join ThirdTable;
on ThirdTable.ThirdID=FirstTable.FirstID
on Two.SecondID=FirstTable.FirstID
on one.SecondID=FirstTable.FirstID
order by 4,3,2,1

Esta consulta está intentando hacer una combinación izquierda de los cursores One y Two, y de ThirdTable y FirstTable, pero no alcanzará los resultados deseados. El analizador de consultas examina esta consulta partiendo de la combinación más interna (en este caso sería "left outer join ThirdTable") y no puede localizar la tabla FirstTable que está antes en la instrucción. Así, si las tablas no están abiertas, podrá ver errores tales como "SQL:
no se encuentra la columna 'ThirdID'", y la salida no será correcta.

Cuando se abren las tablas, "couple.coupleid" se enlaza al campo en el cursor externo (no-SQL) llamado "couple". Así, la consulta es legal, pero no produce los resultados deseados. Para evitar el error y para obtener los resultados correctos, puede utilizar una instrucción SQL similar a la siguiente:

select one.firstname as first, one.lastname as second,;
two.firstname as third, two.lastname as fourth;
from (((FirstTable;
left outer join SecondTable One;
on one.SecondID = FirstTable.FirstID);
left outer join SecondTable Two;
on Two.SecondID = FirstTable.FirstID);
left outer join ThirdTable;
on ThirdTable.ThirdID = FirstTable.FirstID);
order by 4,3,2,1

Los paréntesis de la instrucción no son necesarios pero sí recomendables. Con la estructura de instrucción anterior, no verá errores incluso si las tablas están cerradas y el conjunto de resultados será correcto.



Pregunta 13: ¿Cuándo debería utilizar la programación orientada a objetos en vez de la programación procedural?. ¿Es mejor crear clases de forma visual o mediante código de programa?

Respuesta: Puede continuar usando un estilo de programación procedural tradicional en Visual FoxPro si lo prefiere. La mayoría de los programas de la versión 2.x de FoxPro codificadas en estilo procedural se pueden ejecutar con sólo pequeñas modificaciones en Visual FoxPro.

Sin embargo, considere la transición a un estilo de programación POO si las siguientes condiciones son verdaderas:

1. Su organización participa actualmente en un proceso
estructurado y analítico para nuevos proyectos de programación.

2. Desea invertir los recursos necesarios para programar una biblioteca      de código reutilizable, sin obtener un beneficio de esta inversión     hasta después de terminar el proyecto actual.

3. Desea aprovechar la potencia del control de eventos de Visual          FoxPro, la sintaxis de código común, y otras ventajas asociadas a     la POO.

Cuando crea una clase mediante programación, debe conocer todos los comandos
necesarios para llevar a cabo una tarea, pero también puede inspeccionar cualquier parte del código en cualquier momento. Si crea una clase de forma visual, no tiene que saber todos los comandos para llevar a cabo una tarea, pero tiene que examinar cada método de forma individual. Uno de las ventajas de Visual FoxPro es la capacidad para agregar una clase definida mediante código a un formulario, guardar las instancias de objetos como una clase y, a continuación, editar las clases visualmente. Esta funcionalidad, combinada con la posibilidad de exportar código a través del Examinador de clases, proporciona lo mejor de los dos tipos de herramientas de diseño de clases.


Pregunta 14: ¿Cuál es la diferencia entre la propiedad DataSource y la propiedad ControlSource?

Respuesta: La propiedad DataSource afecta a las vistas ODBC almacenadas en una base de datos (.DBC). Contiene una referencia al nombre del archivo de datos al que ODBC se está conectando y debe apuntar a un origen de datos válido definido mediante el Administrador ODBC. Puede manipular la
propiedad DataSource con la función SQLSETPROP( ) y ver sus valores con la función SQLGETPROP( ).

La propiedad ControlSource se utiliza para determinar el origen de datos al que está enlazado un objeto; la tabla o vista a la que el objeto está enlazado puede ser de cualquier tipo, incluyendo tablas locales de Visual FoxPro. Entre los objetos que tienen una propiedad ControlSource están CheckBox, Column, ComboBox, CommandGroup, EditBox, ListBox, OLE Bound Control, OptionButton, OptionGroup, Spinner y controles TextBox.


Pregunta 15: ¿Cómo puedo establecer propiedades para un formulario o para un botón de comando de un grupo de comandos?

Respuesta: Suponga que está creando un formulario llamado Form1 que contiene un grupo de comandos llamado CommandGroup1 y dos botones de comando llamados Command1 y Command2. Puede cambiar las propiedades de título de todos elementos, excepto Command2, al establecer la propiedad Caption. Por ejemplo, coloque el código siguiente en el evento Click de Command2:

THISFORM.Caption = "Mi primer formulario"

Form1.CommandGroup1.Command1.Caption = "Comando #1"
THISFORM.CommandGroup1.Command2.Caption = "Comando #2"
THISFORM.Command1.Caption = "Comando #3"
THISFORM.Refresh

Nota: Puede hacer referencia al formulario actual utilizando la referencia genérica THISFORM o utilizando el nombre explícito del formulario. Para obtener más información, consulte el capítulo 9, "Creación de formularios" del Manual del programador.




Pregunta 16: ¿Por qué muestra mi cuadro combinado sólo una fila de datos? He dimensionado una matriz para el cuadro combinado y he ejecutado un comando SELECT - SQL en el evento Init de mi formulario para llenar la matriz.

Respuesta: Usted creó una matriz en el evento Init del formulario sin filas o con una sola fila. Cuando se crea el formulario, el evento Init del cuadro combinado ocurre antes que el evento Init del formulario y, por lo tanto, el cuadro combinado sólo contiene una fila de información. Para resolver esto, agregue la siguiente línea de código inmediatamente después de la instrucción SELECT - SQL que crea la matriz en el
evento Init del formulario:

THISFORM.ComboBox1.RowSource = THISFORM.ComboBox1.RowSource




Pregunta 17: ¿Cómo puedo ocultar columnas específicas en un cuadro combinado y mostrar otras?

Respuesta: La manera más fácil de ocultar columnas específicas en un cuadro combinado es utilizar el Generador de cuadros combinados. Arrastre las columnas al ancho deseado en la ficha Distribución del Generador de cuadros combinados.
Para ocultar columnas específicas en un cuadro combinado mediante programación, establezca la propiedad ColumnWidth a 0 para las columnas. En el siguiente código de programa, las columnas 1
y 2 están ocultas, y la columna 3 tiene un ancho de 100 píxeles:


THISFORM.ComboBox1.ColumnWidths = 0,0,100




Pregunta 18: ¿Cuál es la diferencia entre el almacenamiento en búfer de tablas y la integridad referencial?

Respuesta: El almacenamiento en búfer de filas y tablas se puede utilizar para actualizar directamente tablas y registros en un entorno multiusuario. Esto elimina la necesidad de colocar los datos de un registro en variables del sistema, editar las variables del sistema, comprobar si el registro ha cambiado y escribir las modificaciones realizadas al registro. Para obtener más información, consulte el capítulo 17, "Programación para acceso compartido" en el Manual del programador.

En una base de datos relacional, la integridad referencial consiste en las reglas que gobiernan las relaciones entre las claves primarias y externas de distintas tablas. La Integridad referencial asegura que todas las claves externas coincidan con un valor en el correspondiente campo de clave primaria.

Además de permitir a Visual FoxPro hacer cumplir reglas que gobiernan la integridad referencial, puede crear procedimientos almacenados que realizan acciones específicas cuando se actualiza, elimina o inserta un registro de una tabla. El Generador de integridad referencial puede crear procedimientos
almacenados para cada desencadenante de Actualización, Eliminación o inserción. Los tipos de desencadenante de Visual FoxPro se muestran a continuación y los procedimientos almacenados disponibles para cada
uno se muestran entre paréntesis después del tipo de desencadenante.

* Actualización (Ignorar, Cascada o Restringir)
* Eliminación (Ignorar, Cascada o Restringir)
* Inserción.....(Ignorar y Restringir)

Los nombres de los procedimientos almacenados se insertan en el cuadro de
diálogos Propiedades de tabla del Diseñador de tablas. Los desencadenantes se almacenan típicamente como una parte de los procedimientos almacenados de la base de datos (tal y como hace el Generador de Integridad referencial), pero también pueden ser un procedimiento o programa externo. Los desencadenantes se pueden crear mediante programación con CREATE TRIGGER, o agregando un procedimiento almacenado a la base de datos y haciendo referencia al procedimiento almacenado en el desencadenante apropiado en el cuadro de
diálogo Propiedades de tabla del Diseñador de tablas.

Aunque los desencadenantes se utilizan típicamente para implementar posibilidades Cascada o Restringir (utilizando el Generador de Integridad referencial) en eventos Update o Delete, o posibilidades Restringir en eventos Insertar, estos desencadenantes también se pueden utilizar para llamar a procedimientos almacenados que realizan acciones que no están relacionadas con la integridad referencial. Por ejemplo, un desencadenante Update puede ejecutar un procedimiento almacenado que envía un mensaje de correo electrónico a otro departamento para notificar a otras personas una modificación.

La integridad referencial y el almacenamiento en búfer interactúan de la siguiente manera. El código de eventos a nivel de registros se ejecuta cuando se inserta, actualiza o elimina un registro. Los desencadenantes se ejecutan después de las reglas. Sin embargo, cuando el almacenamiento de tablas
o filas en búfer está activo, no se ejecutan los desencadenantes hasta que se actualicen los registros. (La actualización de un registro ocurre cuando se llama a la función TABLEUPDATE( ) o cuando se mueve el puntero de registros mientras está activado el almacenamiento de filas en búfer).

Se pueden utilizar de forma independiente el almacenamiento en búfer y la integridad referencial, y la utilización de la integridad referencial no requiere la utilización del almacenamiento en búfer. En un entorno multiusuario, se suele utilizar el almacenamiento en búfer independientemente de si se está utilizando o no la integridad referencial.




Pregunta 19: Al utilizar Visual FoxPro 5.0 ejecutándose en Windows 95, he creado un archivo .EXE y he utilizado el Asistente para Instalación para hacer discos de distribución. Ahora, la aplicación no se ejecuta en ningún equipo que ejecute Windows para Trabajo en Grupo. ¿Por qué ocurre esto?

Respuesta: Visual FoxPro 5.0 es una aplicación de 32 bits y sólo crea archivos .EXE de 32 bits. Windows para Trabajo en Grupo es un sistema operativo de 16 bits y sólo puede ejecutar aplicaciones de 16 bits. Debe tener Windows 95 o Windows NT 3.51 o posterior para poder
ejecutar sus aplicaciones de Visual FoxPro.




Pregunta 20: ¿Puedo personalizar los colores utilizados para marcar la sintaxis en una ventana de edición?

Respuesta: Puede personalizar fácilmente el aspecto de su código eligiendo Opciones en el menú Herramientas y seleccionando la ficha Colorear la sintaxis en el cuadro de diálogo Opciones. Aquí podrá encontrar varias formas para personalizar los colores del código.

Si quiere desactivar completamente los colores de la sintaxis, elija Propiedades en el menú Edición para mostrar el cuadro de diálogo Propiedades de edición. A continuación, desmarque la casilla de verificación Colorear la sintaxis.


[Up] Documentos
[Home] Home Page
[Mail] Send EMail to FoxCarlos



Gracias por visitar esta Pagina

Last modified on Tuesday 25 de April de 2000