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 | 该文件位于所有程序端的通用文件夹 |