DatabaseOpen

Abre o crea una base de datos en el archivo indicado.

int  DatabaseOpen(
   string  filename,      // nombre del archivo
   uint    flags,         // combinación de banderas
   );

Parámetros

filename

[in]  Nombre del archivo respecto a la carpeta "MQL5\Files".

flags

[in]  Combinación de banderas de la enumeración ENUM_DATABASE_OPEN_FLAGS.

Valor retornado

Si la ejecución tiene éxito, la función retorna el manejador de la base de datos, que después se usará para acceder a los datos de la base; en el caso contrario, retorna INVALID_HANDLE. Para obtener el código del error, use GetLastError(), posibles respuestas:

  • ERR_INTERNAL_ERROR (4001)                       — error crítico del sistema de ejecución;
  • ERR_WRONG_INTERNAL_PARAMETER (4002)  - error interno de acceso a la carpeta "MQL5\Files";
  • ERR_INVALID_PARAMETER (4003)                  — la ruta al archivo de la base de datos contiene una línea vacía o se ha establecido una combinación de banderas incompatible;
  • ERR_NOT_ENOUGH_MEMORY (4004)              - memoria insuficiente;
  • ERR_WRONG_FILENAME (5002)                     - el nombre del archivo de la base de datos es incorrecto;
  • ERR_TOO_LONG_FILENAME (5003)                 - la ruta absoluta al archivo de la base de datos ha superado la longitud máxima;
  • ERR_DATABASE_TOO_MANY_OBJECTS (5122) - se ha superado el número máximo permitido de objetos Database;
  • ERR_DATABASE_CONNECT (5123)                  - error al conectarse a la base de datos;
  • ERR_DATABASE_MISUSE (5621)                      - uso incorrecto de la biblioteca SQLite.

Observación

Si en el parámetro filename se indica NULL o una línea vacía "", en el disco se creará un archivo temporal que será automáticamente eliminado tras cerrar la conexión con la base de datos.

Si en el parámetro filename se indica ":memory:", la base de datos se creará en la memoria; en este caso, además, la base de datos será automáticamente eliminada tras cerrar la conexión con ella.

Si en el parámetro flags no se indica ninguna de las banderas DATABASE_OPEN_READONLY o DATABASE_OPEN_READWRITE, se usará la bandera DATABASE_OPEN_READWRITE.

Si no se ha establecido una extensión para el archivo, se usará la extensión ".sqlite"

ENUM_DATABASE_OPEN_FLAGS

Identificador

Descripción

DATABASE_OPEN_READONLY

Abrir solo para lectura

DATABASE_OPEN_READWRITE

Abrir solo para lectura y grabación

DATABASE_OPEN_CREATE

Crear un archivo en el disco, si aún no existe

DATABASE_OPEN_MEMORY

Crear una base de datos en la memoria operativa

DATABASE_OPEN_COMMON

El archivo se encuentra en la carpeta general de todos los terminales

Ver también

DatabaseClose