Suche…


Bemerkungen

Foxpro wurde Anfang der 80er Jahre (ursprünglich als FoxBase - 1984?) Von Fox-Software erstellt und auf Mac OS-, Unix-, DOS- und Windows-Plattformen unterstützt. Es war damals die schnellste Datenbank-Engine auf PCs. Später im Jahr 1992 wurde es leider von Microsoft erworben. Nach der Übernahme durch Microsoft wurden 1994 Foxpro for DOS (FPD) und Foxpro for Windows (FPW) 2.6 veröffentlicht. Ende 1995 erhielt Foxpro den Namen "Visual" und die Plattformunterstützung war nur auf Windows beschränkt. Es war auch die erste Version von Foxpro, bei der die Sprache objektorientiert war.

Microsofts offizielle Visual Foxpro-Site (im Allgemeinen nur als VFP bezeichnet) beschreibt es als:

Das Microsoft® Visual FoxPro®-Datenbankentwicklungssystem ist ein leistungsfähiges Werkzeug zum schnellen Erstellen von leistungsstarken Desktop-, Rich Client-, verteilten Client-, Client / Server- und Web-Datenbankanwendungen.

Obwohl es sich um eine alte Sprache handelt, gilt sie immer noch als die einfachste Sprache, um schnell eine datenzentrische Anwendung für den Windows-Desktop zu erstellen. Wenn Sie eine datenbasierte Anwendung für den Windows-Desktop erstellen möchten, ist die Verwendung von VFP wirklich einfach und schnell.

Versionen

Ausführung Veröffentlicht
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 oder Setup

Detaillierte Anweisungen zum Einrichten oder Installieren von Visual FoxPro.

Hallo Welt

In allen Sprachen ist das erste Beispiel das Drucken von "Hello World". Das ist wahrscheinlich am einfachsten in VFP:

? "Hello World"

Fügen Sie den globalen Fehlerhandler hinzu

Sie können unbehandelte Fehler (Ausnahmen) in einer VFP-Anwendung auf einfache Weise abfangen, indem Sie den Befehl ON ERROR am Anfang Ihres Hauptprogramms verwenden.

Der folgende ON ERROR-Befehl ruft im aktuellen Programm eine Methode mit dem Namen "errorHandler" auf. Die von ERROR (die VFP-Fehlernummer), MESSAGE (die VFP-Fehlernachricht), PROGRAM (Name des aktuell ausgeführten Programms) und LINENO (die Zeilennummer des Fehlers) zurückgegebenen Werte werden an die errorHandler-Methode übergeben.

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

Eine einfache errorHandler-Methode kann wie folgt aussehen.

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

Sie können auch den Fehlerhandler dazwischen ändern und wiederherstellen. An einem Punkt möchten Sie beispielsweise alle Tabellen in einem Ordner exklusiv öffnen. Wenn Sie dies nicht tun können, möchten Sie nicht fortfahren:

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

Tipp: Manchmal, besonders beim Debuggen, möchten Sie den Standard-Fehlerhandler wiederherstellen, der es Ihnen ermöglicht, den Code zu brechen, in dem der Fehler aufgetreten ist, und dann an einer anderen Stelle, an der der Fehler aufgetreten ist, vorübergehend Folgendes hinzuzufügen:

on error

würde das tun.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow