Recherche…


Remarques

Foxpro a été créé au début des années 80 (à l'origine sous le nom FoxBase - 1984?) Par le logiciel Fox et pris en charge sur les plates-formes Mac OS, Unix, DOS et Windows. Il était alors connu comme le moteur de base de données le plus rapide sur PC. Plus tard en 1992, malheureusement , il a été acquis par Microsoft. Après la reprise de Microsoft, Foxpro pour DOS (FPD) et Foxpro pour Windows (FPW) 2.6 ont été lancés en 1994. À la fin de 1995, Foxpro a reçu le nom de "Visual" et le support de la plate-forme était limité à Windows. C'était aussi la première version de Foxpro où le langage était orienté objet.

Le site officiel Visual Foxpro de Microsoft (communément appelé simplement VFP) le décrit comme:

Le système de développement de bases de données Microsoft® Visual FoxPro® est un outil puissant pour créer rapidement des applications de base de données de bureau, client enrichi, client distribué, client / serveur et Web hautes performances.

Bien qu'il s'agisse d'un ancien langage, il est toujours considéré comme le langage le plus simple pour créer rapidement une application centrée sur les données pour le bureau Windows. Si vous avez besoin de créer une application basée sur les données pour Windows Desktop, puis de choisir VFP, vous le ferez vraiment facilement et rapidement.

Versions

Version Libéré
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

Installation ou configuration

Instructions détaillées sur l'installation ou l'installation de visual-foxpro.

Bonjour le monde

Traditionnellement, dans toutes les langues, le premier exemple est "Hello World". Probablement faire cela est plus facile dans VFP:

? "Hello World"

Ajouter un gestionnaire d'erreur global

Une méthode simple pour détecter les erreurs non gérées (exceptions) dans une application VFP consiste à utiliser la commande ON ERROR au début de votre programme principal.

La commande ON ERROR suivante appelle une méthode du programme en cours appelée "errorHandler". Les valeurs renvoyées par ERROR (le numéro d'erreur VFP), MESSAGE (message d'erreur VFP), PROGRAM (nom du programme en cours d'exécution) et LINENO (numéro de ligne de l'erreur) sont transmises à la méthode errorHandler.

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

Une simple méthode errorHandler peut ressembler à ceci:

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

Vous pouvez également modifier et restaurer le gestionnaire d'erreurs entre les deux. Par exemple, à un moment donné, vous voulez ouvrir toutes les tables d'un dossier exclusivement, et si vous ne le pouvez pas, vous ne voulez pas continuer:

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

Astuce: Parfois, en particulier pendant le débogage, vous souhaitez restaurer le gestionnaire d’erreur par défaut, ce qui vous permet de pénétrer dans le code où l’erreur s’est produite, puis de l’ajouter à l’endroit, en ajoutant temporairement:

on error

ferait cela.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow