DatabaseOpen

Öffnet oder erstellt die angegebene Datenbankdatei.

int  DatabaseOpen(
   string  filename,      // Dateiname
   uint    flags          // Kombination der Flags
   );

Parameter

filename

[in]  Dateiname in dem Verzeichnis "MQL5\Files".

flags

[in]  Kombination der Flags gemaäß der Enumeration ENUM_DATABASE_OPEN_FLAGS.

Rückgabewert

Wenn die Funktion erfolgreich ausgeführt wurde, gibt sie das Datenbank-Handle zurück, mit dem dann auf die Datenbank zugegriffen wird. Andernfalls wird INVALID_HANDLE zurückgegeben. Um die Fehlernummer abzurufen, verwenden Sie GetLastError(), die möglichen Antworten sind:

  • ERR_INTERNAL_ERROR (4001)                       – kritischer Laufzeitfehler;
  • ERR_WRONG_INTERNAL_PARAMETER (4002)  - interner Fehler beim Zugriff auf das Verzeichnis "MQL5\Files";
  • ERR_INVALID_PARAMETER (4003)                  – Der Pfad zur Datenbankdatei ist leer oder es wurde eine inkompatible Kombination der Flags übergeben;
  • ERR_NOT_ENOUGH_MEMORY (4004)              - ungenügend Speicher;
  • ERR_WRONG_FILENAME (5002)                     - der Name der Datenbankdatei ist falsch;
  • ERR_TOO_LONG_FILENAME (5003)                 - absoluter Pfad zur Datenbankdatei übersteigt die maximale Länge;
  • ERR_DATABASE_TOO_MANY_OBJECTS (5122) - es wurde die Maximalzahl an Datenbankobjekten überschritten;
  • ERR_DATABASE_CONNECT (5123)                  - Verbindungsfehler zur Datenbank;
  • ERR_DATABASE_MISUSE (5621)                      - falsche Verwendung der SQLite-Bibliothek.

Hinweis

Wenn der Parameter filename NULL oder die leere Zeichenfolge "" enthält, wird eine temporäre Datei auf der Festplatte erstellt. Sie wird nach dem Schließen der Datenbankverbindung automatisch gelöscht.

Wenn der Parameter filename den Wert ":memory:" enthält, wird die Datenbank im Speicher angelegt und nach dem Schließen der Verbindung zu ihr automatisch gelöscht.

Wenn der Parameter flags keines der Flags DATABASE_OPEN_READONLY oder DATABASE_OPEN_READWRITE aufweist, wird das Flag DATABASE_OPEN_READWRITE verwendet.

Wenn die Dateierweiterung nicht angegeben wurde, wird ".sqlite" verwendet.

ENUM_DATABASE_OPEN_FLAGS

ID

Beschreibung

DATABASE_OPEN_READONLY

Schreibgeschützt

DATABASE_OPEN_READWRITE

Öffnen zum Lesen und Schreiben

DATABASE_OPEN_CREATE

Datei auf der Festplatte erstellen, falls nötig

DATABASE_OPEN_MEMORY

Datenbank im RAM erstellen

DATABASE_OPEN_COMMON

Die Datei befindet sich im Verzeichnis "Common" des Terminals

Siehe auch

DatabaseClose