CX_OBJECT_MANAGER::OpenDatabase (ab Dll-Version: 4.5.2.170254)
Beschreibung:
öffnet die n-te logische Datenbank mit einem neuen Pfad. Damit kann eine andere physische Datenbank zugeordnet werden.
Als Pfad zur Datenbank kann - genau wie bei classix.ini
a) ein normaler Windows-Pfad
b) ein Pfad mit vorangestelltem Namen des ObjectStore-Servers
c) eine Environment-Variable angegeben werden
Für a) und b) wird CX_ROOTDIR automatisch ersetzt.
Eine vorher geöffnete Datenbank wird automatisch geschlossen.
Aufruf der Methode OpenDatabase innerhalb einer Transaktion ist ein Fehler - Rückgabewert = FALSE.
Die ersetzte Datenbank muss dem in classix.ini vorgegeben Layout bezüglich Segmenten und REP-Collections entsprechen!
InstantView® Code darf nach dem Wechsel der Datenbank nicht mehr mit Objekten aus der inzwischen inaktiven Datenbank arbeiten.
OpenDatabase hat keinen Einfluss auf den Wert von InstantView® -Variablen!
Für eine mögliche Technik, das zu verhindern siehe CX_SYSTEM_OBJECT։։ResetModules
Code-Beispiel:
// or controlled by an environment variable
"CX_DATABASE_2" 2 GetManager(OBJECT) Call(OpenDatabase)
Stack | Position | Objekttyp | Kurzbeschreibung |
---|---|---|---|
Stack(In) | Top | CX_OBJECT_MANAGER | Der Objectmanager |
Top-1 | INTEGER | Nummer der Datenbank | |
Top-2 | STRING | neuer Pfad | |
Stack(Out) | Top | INTEGER | TRUE - open erfogreich, FALSE - ein Fehler ist aufgetreten |
Funktionsaufruf: Call(OpenDatabase)
Verwandtes Thema: CloseDatabase, TestDatabaseServer