Las funciones para trabajar con las bases de datos usan el popular y sencillo motor SQLite. La comodidad de este motor reside en que toda la base de datos se encuentra en un único archivo en el disco duro de la computadora del usuario.
Con la ayuda de estas funciones, resulta muy sencillo crear recuadros, añadir datos a estos, realizar modificaciones y generar muestras con solicitudes SQL simples:
Las funciones para trabajar con las bases de datos permiten sustituir las operaciones más repetidas en cuanto al procesamiento de grandes matrices de datos por solicitudes SQL, lo cual posibilita en muchos casos, en lugar de programar complejos ciclos y comparaciones, usar las llamadas de DatabaseExecute/DatabasePrepare. Para obtener fácilmente los resultados de la solicitud en una estructura ya preparada, use la función DatabaseReadBind, que permite leer directamente todos los campos de la entrada en una sola llamada.
Para acelerar las operaciones de lectura, registro y modificación de la base de datos, es posible abrir/crear en la memoria operativa con la bandera DATABASE_OPEN_MEMORY, pero, en este caso, la base estará disponible en un programa concreto y no se dividirá con ningún otro. Al trabajar con las bases de datos que se encuentran en el disco duro, es necesario envolver las inserciones/cambios masivos de datos en las transacciones con la ayuda de DatabaseTransactionBegin/DatabaseTransactionCommit/DatabaseTransactionRollback, lo cual ofrece una velocidad cientos de veces superior.
Para empezar a trabajar con estas funciones, basta con leer el artículo SQLite: trabajo nativo con bases de datos en SQL en MQL5.
Función |
Acción |
Abre o crea una base de datos en el archivo indicado |
|
Cierra una base de datos |
|
Importa a un recuadro los datos de un archivo |
|
Exporta un recuadro o el resultado de la ejecución de una solicitud SQL a un archivo CSV |
|
Imprime el recuadro o resultado de la ejecución de una solicitud SQL en el diario de expertos |
|
Comprueba la presencia de un recuadro en la base de datos |
|
Ejecuta una solicitud a la base de datos indicada |
|
Crea el manejador de una solicitud, que después puede ser ejecutada con la ayuda de DatabaseRead() |
|
Resetea la solicitud a su estado inicial, igual que tras la llamada de DatabasePrepare() |
|
Establece el valor de un parámetro en la solicitud |
|
Establece una matriz como valor del parámetro. |
|
Ejecuta el paso a la siguiente entrada en el resultado de la solicitud |
|
Pasa a la siguiente entrada y lee los datos en la estructura de esta |
|
Elimina la solicitud creada en DatabasePrepare() |
|
Comienza la ejecución de una transacción |
|
Finaliza la ejecución de una transacción |
|
Ejecuta el retroceso de una transacción |
|
Obtiene el número de campos en una solicitud |
|
Obtiene el nombre de un campo según el número |
|
Obtiene el tipo de un campo según el número |
|
Obtiene el tamaño del campo en bytes |
|
Obtiene de la entrada actual el valor del campo en forma de línea |
|
Obtiene de la entrada actual un valor del tipo int |
|
Obtiene de la entrada actual un valor del tipo long |
|
Obtiene de la entrada actual un valor del tipo double |
|
Obtiene de la entrada actual el valor del campo en forma de matriz |