Zum Hauptinhalt springen

C16_BinOpen

C16_BinOpen(const vPHANDLE aInstHdl, const vPHANDLE aDirHdl, const vCHAR* aName, vFLAGS aFlags, vPHANDLE* aBinHdl) : vERROR

Binäres Objekt oder Verzeichnis öffnen

Details

  • aInstHdl: Instanz-Handle
  • aDirHdl: Deskriptor des Elternverzeichnisses
  • aName: Objekt- bzw. Verzeichnisname
  • aFlags:
    • Optionen:
    • _BinLock
    • _BinSharedLock
    • _BinSingleLock
    • _BinCreate
    • _BinCreateNew
    • _BinDirectory
  • aBinHdl: Deskriptor des binären Objektes
  • Resultat: vERROR Fehlerwert
  • Siehe: Befehle der Programmierschnittstelle , C16_BinClose()

Mit dieser Funktion wird ein binäres Objekt bzw. Verzeichnis geöffnet oder neu angelegt.

Im Parameter (aInstHdl) wird der von C16_InitInstance() bereitgestellte Instanz-Handle, der an die Funktion C16_OpenArea() zum Öffnen der Datenbank verwendet wurde, übergeben.

In (aDirHdl) wird der Deskriptor des Ausgangsverzeichnisses angegeben.

info

Sofern das Ausgangsverzeichnis dem Wurzelverzeichnis entspricht, wird in (aDirHdl) 0 angegeben. Das Wurzelverzeichnis ist immer vorhanden und braucht auch nicht geöffnet zu werden.

Die maximale Länge eines Verzeichnisnamens (ohne Pfad) beträgt 60 Zeichen. Der Verzeichnisname darf keine Steuerzeichen oder die Zeichen * und ? enthalten. Es können maximal 60 Ebenen angelegt werden.

Der Objektname (aName) kann auch einen Pfadbestandteil enthalten, der relativ zum Ausgangsverzeichnis ist.

Folgende Optionen (aFlags) können angegeben werden:

  • _BinCreate: Das Objekt wird im Ausgangsverzeichnis erstellt.
  • _BinCreateNew: Das Objekt wird explizit im Ausgangsverzeichnis erstellt. Gibt _rExists zurück, wenn das Objekt schon existiert.
  • _BinLock: Das Objekt wird beim Öffnen oder Anlegen für andere Benutzer gesperrt.
  • _BinSharedLock: Das Objekt wird beim Öffnen oder Anlegen mit anderen Benutzer gesperrt.
  • _BinSingleLock: Das Objekt wird beim Öffnen oder Anlegen für alle Benutzer gesperrt.
  • _BinDirectory: Es wird ein Verzeichnis geöffnet.
info

Wird keine Sperroption angegeben, wird das Objekt mit einer gemeinsamen Sperre ( _BinSharedLock ) geöffnet.

Die Sperrung eines Objektes bleibt bis zum Schließen des Objektes mit C16_BinClose() , oder bis sich der Benutzer von der Datenbank abmeldet, erhalten. Änderungen an einem Objekt (Update, Import usw.) können nur bei einer exklusiven Sperre (_BinLock bzw. _BinSingleLock) vorgenommen werden.

Der erzeugte Deskriptor wird in (aBinHdl) zurückgegeben.

Der Rückgabewert vom Typ vERROR beinhaltet entweder 0 (kein Fehler), einen negativen Fehlerwert (siehe Fehlerwerte ) oder einen der folgenden Fehlerwerte:

  • _rLocked: Das Objekt bzw. Verzeichnis ist bereits gesperrt.
  • _rNoKey: Das Objekt bzw. Verzeichnis existiert nicht. Nächstes Objekt bzw. Verzeichnis gelesen.
  • _rLastRec: Das Objekt bzw. Verzeichnis existiert nicht. Letztes Objekt bzw. Verzeichnis gelesen.
  • _rNoRec: Das Objekt bzw. Verzeichnis existiert nicht. Kein weiteres Objekt bzw. Verzeichnis vorhanden.
  • _rExists: Das Objekt bzw. Verzeichnis existiert bereits.
  • _rNoRights: Benutzerrechte nicht ausreichend.
  • _rDeadlock: Verklemmung aufgetreten.
  • C16ERR_BIN_OPERATION: Versuch ein binäres Objekt im Wurzelverzeichnis anzulegen.