DBinitDatabase

Top  Previous  Next

Datenbank initialisieren.

Mit dieser Funktion wird ein Datenbankbereich, üblicherweise der einzige Datenbankbereich, initialisiert. Dies sollte normalerweise nicht vom Anwender erfolgen. Er kann statt dessen DBdeleteDatabase verwenden. Bei DBinitDatabase sind die folgenden Arbeitsweisen möglich:

Nur ein neues Workfile anlegen:      read=0, oldRoot=0

zusätzlich das Workfile auch aus der Datei laden:  read=1, oldRoot=0

es gab schon einen Datenbankbereich und dieser soll wieder verwendet werden.

oldRoot=1

Es ist zum Beispiel wichtig, wenn dieser Bereich dem anzeigenden Prozess bekannt ist:

read=?, oldRoot=<datenbankHandle>

Parameter

filename (char *)                                          [IN]

Mit diesem Parameter wird der Name der Datei angegeben, die das Workfile enthält, bzw. enthalten soll. Die Datei wird geöffnet und gelesen, wenn read nicht 0 ist. Beim Beenden des Programms werden in diese Datei die Daten gespeichert, die sich gerade in der Datenbank befinden.

read (int)                                                      [IN]

read gibt an ob die Datenbank leer bleiben soll (read=0) oder ob sie mit dem Inhalt der Datei filename gefüllt werden soll (read!=0).

oldRoot (PROOT)                              [IN/OUT]

Wenn hier ein von 0 verschiedener Wert steht, wird dies als schon existierendes Handle einer Datenbank aufgefaßt, die dann nur neu initialisiert wird. Als Ergebnis wird dann genau dieser Zeiger geliefert. Der Inhalt der Datenbank oldRoot wird zerstört.

startDrawthread (int)                                    [IN]

writemode (int)                                            [IN]

transaction (int)                                            [IN]

Ergebnis

(PROOT)                                                 [OUT]

Dies ist das Handle auf eine neue oder neu initialisierte Datenbank.

Deklaration

#include "database.h"

 

PROOT DLLENTRY DBinitDatabase (

     char *      filename,

     int         read,

     PROOT    oldRoot,

     int         startDrawthread,

     int         writemode,

     int         transaction

);