TurboPL Referenz

OpenDb Prozedur

Top  Previous  Next

Syntax

OpenDb(Dateiname, Passwort: String; Code, Zugriffsrechte: Integer): Integer

Kategorie

Datenbank-Befehl

Erklärung

Fügt die Tabelle vorübergehend zur Datenbank hinzu. Dabei wird die angegebene Tabelle physikalisch geöffnet.

Dateiname ist die komplette Pfadangabe der Tabelle inklusive Extension, bei Datenbank-Dateien einfach nur der Tabellenname. Passwort und Code müssen übergeben werden, wenn die Tabelle geschützt ist, ansonsten tragen Sie hier "" und 0 ein. Beim Passwort sind Großbuchstaben anzugeben. Verwenden Sie beispielsweise die Funktion Upper zur Umwandlung einer Benutzereingabe in Großbuchstaben. Bei den Zugriffsrechten (NELI-Rechten) können Sie in Form von gesetzten Bits bestimmen, welche Aktionen auf der Tabelle erlaubt sein sollen:

Bit-Nr

Bit-Wert

Bedeutung

0

1

Neueingabe

1

2

Editieren

2

4

Löschen

3

8

Indizieren

Beispiele für den Wert von Zugriffsrechte:

0

Nur lesen

6

Editieren und Löschen erlaubt

7

Neueingabe, Editieren und Löschen erlaubt

8

Indizieren erlaubt

15

Alles erlaubt

Das Ergebnis der Funktion ist die Tabellennummer, wenn die Funktion erfolgreich geöffnet werden konnte. Wenn die Tabelle nicht geöffnet werden kann, wird der Rückgabewert auf 0 gesetzt und ein Laufzeitfehler ausgelöst. Mögliche Fehler sind:

Fehlernummer

Mögliche Ursache

1

Tabellenname falsch angegeben

35

Tabelle ist schon im Projekt eingebunden oder wurde schon mit OpenDb geöffnet. Es kann auch sein, dass eine andere Tabelle mit dem selben Namen schon geöffnet wurde. Denken Sie hier auch an automatisch geöffnete Relationstabellen.

Eine OpenDb geöffnete Tabelle wird vom Laufzeitsystem wieder geschlossen, wenn sie nicht mehr benötigt wird. Dies kann schon am Ende der aufrufenden Prozedur sein, oder auch später. Die Anwendung muss sich darum nicht kümmern. Mit CloseDb kann man die Tabelle wieder aus der Datenbank entfernen und dabei physikalisch schließen.

Beispiel

Öffnen der unverschlüsselten und nicht passwortgeschützten Tabelle KUNDEN mit allen Rechten.

procedure Kundentabelle_öffnen
       vardef TableHdl: Integer;
       ..Fehlerbehandlung selbst übernehmen
       .EC 1
       TableHdl := OpenDb("KUNDEN.DAT", "", 0, 15)
       .EC 0
       IF TableHdl > 0
               ..
               ..hier kann mit der Tabelle gearbeitet werden
               ..
               ..Das Schließen der Tabelle muss nicht unbedingt hier erfolgen,
               ..sollte aber auf keinen Fall vergessen werden
               CloseDb(TableHdl)
       else
               Message("Beim Öffnen der Tabelle KUNDEN ist ein Fehler aufgetreten. Fehlernummer: " + Str(Fehler))
       end
endproc

Öffnen der unverschlüsselten und nicht passwortgeschützten Tabelle KUNDEN, wobei nur Editieren und .Indizieren erlaubt ist

TableHdl := OpenDb("KUNDEN.DAT", "", 0, 10)

Jetzt ist die Tabelle mit dem Passwort Hugo und dem Schlüssel 1234 gesichert:

TableHdl := OpenDb("KUNDEN.DAT", "Hugo", 1234, 10)

Siehe auch

FindTable, CloseDb