DatabaseOpen

Открывает или создаёт базу данных в указанном файле.

int  DatabaseOpen(
   string  filename,      // имя файла
   uint    flags          // комбинация флагов
   );

Параметры

filename

[in]  Имя файла относительно папки "MQL5\Files".

flags

[in]  Комбинация флагов из перечисления ENUM_DATABASE_OPEN_FLAGS.

Возвращаемое значение

При успешном выполнении функция возвращает хэндл базы данных, который затем используется для доступа к данным базы, в противном случае возвращает INVALID_HANDLE. Для получения кода ошибки используйте GetLastError(), возможные ответы:

  • ERR_INTERNAL_ERROR (4001)                       – критическая ошибка исполняющей системы;
  • ERR_WRONG_INTERNAL_PARAMETER (4002)  - внутренняя ошибка доступа к папке "MQL5\Files";
  • ERR_INVALID_PARAMETER (4003)                  – путь к файлу базы содержит пустую строку или выставлена несовместимая комбинация флагов;
  • ERR_NOT_ENOUGH_MEMORY (4004)              - недостаточно памяти;
  • ERR_WRONG_FILENAME (5002)                     - некорректное имя файла базы данных;
  • ERR_TOO_LONG_FILENAME (5003)                 - абсолютный путь к файлу базы данных превысил максимальную длину;
  • ERR_DATABASE_TOO_MANY_OBJECTS (5122) - превышено максимально допустимое количество объектов Database;
  • ERR_DATABASE_CONNECT (5123)                  - ошибка подключения к базе данных;
  • ERR_DATABASE_MISUSE (5621)                      - неправильное использование библиотеки SQLite.

Примечание

Если в параметре filename указан NULL или пустая строка "", то на диске будет создан временный файл, который будет автоматически удален после закрытия соединения с базой данных.

Если в параметре filename указан ":memory:", то база данных будет создана в памяти, при этом  база данных будет автоматически удалена после закрытия соединения с ней.

Если в параметре flags не указан ни один из флагов DATABASE_OPEN_READONLY или DATABASE_OPEN_READWRITE, то будет использован флаг DATABASE_OPEN_READWRITE.

Если для файла не задано расширение, то будет использовано расширение ".sqlite"

ENUM_DATABASE_OPEN_FLAGS

Идентификатор

Описание

DATABASE_OPEN_READONLY

Открыть только на чтение

DATABASE_OPEN_READWRITE

Открыть на чтение и запись

DATABASE_OPEN_CREATE

Создать файл на диске, если он не существует

DATABASE_OPEN_MEMORY

Создать базу данных в оперативной памяти

DATABASE_OPEN_COMMON

Файл находится в общей папке всех терминалов

Смотри также

DatabaseClose