DbeSys.prg

Aus Wiki des Deutschsprachige Xbaseentwickler e. V.
Zur Navigation springen Zur Suche springen

DBESys.prg

Unter Clipper gab es eine implizit gelinkte ErrorSys.prg, die das Standard-Verhalten im Fehlerfall regulierte. Man konnte als Programmierer eine eigene ErrorSys.prg erstellen und einbinden und damit das Standard-Verhalten anpassen.

Analog dazu dient die DbeSys.prg dazu, DBE-Komponenten zu laden und im Programm zur Verfügung zu stellen.

Die DBESys ist quasi eine INIT PROCEDURE, d.h. sie wird beim Start des Programms abgearbeitet, da ihr Ergebnis im Normalfall für die Funktionsfähigkeit des Programms ausschlaggebend ist.

Eine Muster DBESys

FUNCTION DBESys()
  IF !DbeLoad("FOXDBE", .T.)
    ConfirmBox(, "FOXDBE konnte nicht geladen werden", XBPMB_OK, XBPMB_CRITICAL)
    QUIT
  ENDIF
  IF !DbeLoad("CDXDBE" , .T.)
    ConfirmBox(, "CDXDBE konnte nicht geladen werden", XBPMB_OK, XBPMB_CRITICAL)
    QUIT
  ENDIF
  IF !DbeBuild("FOXCDX", "FOXDBE", "CDXDBE" )
    ConfirmBox(, "FOXCDX konnte nicht erstellt werden", XBPMB_OK, XBPMB_CRITICAL)
    QUIT
  ENDIF
RETURN (.T.)

Die Funktion DBELoad() lädt die DBE und stellt sie zur Verfügung. Es ist hier unerheblich, ob es sich um eine DATA oder die ORDER Komponente handelt.

Falls das Laden der DBE nicht erfolgreich ist, erfolgt eine Fehlermeldung über ConfirmBox(), und das Programm wird beendet.

Nachdem die DATA und die ORDER Komponente geladen sind, wird mittels DBEBuild() eine Compound DBE dynamisch erzeugt. Wir verwenden in unserem Beispiel nur eine DATA und eine ORDER Komponente, die Dokumentation sieht jedoch vor, dass als dritter Parameter eine RELATION Komponente angegeben werden kann, und ein vierter Parameter ist für eine DICTIONARY Komponente vorgesehen. Bisher hat Alska Software allerdings keine entsprechenden DBEs zur Verfügung gestellt.