Buscar..


Observaciones

Foxpro fue creado a principios de los 80 (originalmente como FoxBase - 1984?) Por el software de Fox y es compatible con las plataformas Mac OS, Unix, DOS y Windows. Era conocido como el motor de base de datos más rápido para PC en ese momento. Más tarde, en 1992, desafortunadamente , fue adquirido por Microsoft. Después de que Microsoft se hizo cargo, en 1994 se lanzaron Foxpro para DOS (FPD) y Foxpro para Windows (FPW) 2.6. A fines de 1995, Foxpro recibió el nombre de "Visual" y el soporte de la plataforma solo se limitó a Windows. También fue la primera versión de Foxpro donde el lenguaje resultó ser orientado a objetos.

El sitio oficial de Microsoft Visual Foxpro (comúnmente denominado solo VFP) lo describe como:

El sistema de desarrollo de bases de datos Microsoft® Visual FoxPro® es una herramienta poderosa para crear rápidamente aplicaciones de bases de datos de escritorio, cliente enriquecido, cliente distribuido, cliente / servidor y web de alto rendimiento.

Aunque es un idioma antiguo, todavía se considera que es el lenguaje más fácil para crear una aplicación centrada en datos rápidamente para el escritorio de Windows. Si lo que necesita es crear una aplicación basada en datos para el escritorio de Windows y luego elegir VFP, lo haría de manera fácil y rápida.

Versiones

Versión Publicado
FPW 2.6a 1994-10-28
Visual Foxpro 3.0 1995-12-16
Visual Foxpro 5.0 1997-01-24
Visual Foxpro 6.0 2000-08-18
Visual Foxpro 7.0 2002-01-04
Visual Foxpro 8.0 2003-10-25
Visual Foxpro 9.0 2004-12-13
Visual Foxpro 9.0 SP2 2007-10-21

Instalación o configuración

Instrucciones detalladas sobre cómo configurar o instalar Visual-FoxPro.

Hola Mundo

Tradicionalmente, en todos los idiomas, el primer ejemplo es imprimir "Hello World". Probablemente hacerlo sea más fácil en VFP:

? "Hello World"

Añadir Global Error Handler

Una forma sencilla de detectar errores no manejados (excepciones) en una aplicación VFP es usar el comando ON ERROR cerca del comienzo de su programa principal.

El siguiente comando ON ERROR llama a un método en el programa actual llamado "errorHandler". Los valores devueltos por ERROR (el Número de error de VFP), MENSAJE (el Mensaje de error de VFP), PROGRAMA (nombre del programa que se está ejecutando actualmente) y LINENO (el número de línea del error) se pasan al método errorHandler.

ON ERROR DO errorHandler WITH ERROR(), MESSAGE(), PROGRAM(), LINENO()

Un método simple errorHandler puede parecerse a lo siguiente.

PROCEDURE errorHandler
    LPARAMETERS tnVFPErrorNumber, tcVFPErrorMessage, tcProcWithError, tnLineNumber

    STORE 'Error message: ' + tcVFPErrorMessage + CHR(13) + ;
        'Error number: ' + TRANSFORM(tnVFPErrorNumber) + CHR(13) + ;
        'Procedure with error: ' + tcProcWithError + CHR(13) + ;
        'Line number of error: ' + TRANSFORM(tnLineNumber) TO lcDetails

    MESSAGEBOX(lcDetails, 16, "Unhandled Exception")

    ON ERROR *
    ON SHUTDOWN
    CLEAR EVENTS

    QUIT
ENDPROC

También puede cambiar y restaurar el controlador de errores en el medio. Por ejemplo, en un momento dado desea abrir todas las tablas en una carpeta exclusivamente, y si no puede, no desea continuar:

procedure DoSomethingWithExclusiveLock(tcFolder)
local lcOldError, llInUse, ix && by default these variables have a value of .F.
lcError = on('error') && save current handler
on error llInUse = .T.  && new handler
local array laTables[1]  
for ix=1 to adir(laTables, addbs(m.tcFolder) + '*.dbf'))
   use (addbs(m.tcFolder)+laTables[m.ix,1]) in 0 exclusive
endfor
on error &lcError && restore old handler
if m.llInUse && couldn't get exclusive lock on all tables
   close databases all
   return
endif
* do whatever
endproc

Sugerencia: a veces, especialmente durante la depuración, desearía restaurar el controlador de errores predeterminado, que le permite interrumpir y entrar en el código donde ocurrió el error, luego en cualquier lugar donde obtuvo el error, agregando temporalmente:

on error

haría esto



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow