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) - 超过可接受的数据库对象的最大数目;
  • 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

ID

描述

DATABASE_OPEN_READONLY

只读

DATABASE_OPEN_READWRITE

为读写开放

DATABASE_OPEN_CREATE

必要时,在磁盘上创建文件

DATABASE_OPEN_MEMORY

在RAM中创建数据库

DATABASE_OPEN_COMMON

该文件位于所有程序端的通用文件夹

另见

DatabaseClose