- Principios de las operaciones de base de datos en MQL5
- Conceptos básicos de SQL
- Estructura de las tablas: tipos de datos y restricciones
- POO (MQL5) e integración SQL: concepto de ORM
- Crear, abrir y cerrar bases de datos
- Ejecutar consultas sin enlace de datos MQL5
- Comprobar si una tabla existe en la base de datos
- Preparar consultas vinculadas: DatabasePrepare
- Borrar y reiniciar consultas preparadas
- Vincular datos a parámetros de consulta: DatabaseBind/Array
- Ejecutar consultas preparadas: DatabaseRead/Bind
- Leer campos por separado: funciones DatabaseColumn
- Ejemplos de operaciones CRUD en SQLite mediante objetos ORM
- Transacciones
- Importar y exportar tablas de bases de datos
- Imprimir tablas y consultas SQL en registros
- Ejemplo de búsqueda de una estrategia de trading mediante SQLite
Imprimir tablas y consultas SQL en registros
Si es necesario, un programa MQL puede mostrar el contenido de una tabla o los resultados de una consulta SQL en un registro mediante la función DatabasePrint.
long DatabasePrint(int database, const string table_or_sql, uint flags)
El manejador de la base de datos se pasa en el primer parámetro, seguido del nombre de la tabla o del texto de la consulta (table_or_sql). La consulta SQL debe empezar por «SELECT» o «select», es decir, no debe cambiar el estado de la base de datos. De lo contrario, la función DatabasePrint finalizará con un error.
El parámetro flags especifica una combinación de banderas que determinan el formato de la salida.
- DATABASE_PRINT_NO_HEADER - no mostrar los nombres de columna de la tabla (nombres de campo)
- DATABASE_PRINT_NO_INDEX - no mostrar números de línea
- DATABASE_PRINT_NO_FRAME - no mostrar un marco que separe el encabezado de los datos.
- DATABASE_PRINT_STRINGS_RIGHT - alinear cadenas a la derecha
Si flags = 0, entonces se muestran las columnas y las filas, el encabezado y los datos están separados por un marco, y las filas están alineadas a la izquierda.
La función devuelve el número de registros visualizados, o -1 en caso de error.
Utilizaremos la función en la siguiente sección.
Lamentablemente, la función no permite una salida de consultas preparadas con parámetros. Si hay parámetros, tendrán que incrustarse en el texto de la consulta en el nivel MQL5.