- Знакомство с принципами работы с базой данных в MQL5
- Основы SQL
- Структура (схема) таблиц: типы данных и ограничения
- Интеграция ООП (MQL5) и SQL: концепция ORM
- Создание, открытие и закрытие базы данных
- Выполнение запросов без привязки к данным MQL5
- Проверка существования таблицы в базе данных
- Подготовка запросов с привязкой: DatabasePrepare
- Удаление и сброс подготовленных запросов
- Привязка данных к параметрам запроса:DatabaseBind/Array
- Выполнение подготовленных запросов: DatabaseRead/Bind
- Раздельное чтение полей: DatabaseColumn-функции
- Примеры CRUD-операций в SQLite через объекты ORM
- Транзакции
- Импорт и экспорт таблицы базы данных
- Печать таблиц и SQL-запросов в журнал
- Пример поиска торговой стратегии средствами SQLite
Печать таблиц и SQL-запросов в журнал
При необходимости MQL-программа может вывести содержимое таблицы или результаты выполнения SQL-запроса в журнал с помощью функции DatabasePrint.
long DatabasePrint(int database, const string table_or_sql, uint flags)
Дескриптор базы передается в первом параметре, далее идет имя таблицы или текст запроса (table_or_sql). SQL-запрос должен начинаться с "SELECT" или "select", то есть он не должен изменять состояние базы данных — или функция DatabasePrint завершится ошибкой.
В параметре flags указывается комбинация флагов, определяющая форматирование вывода.
- DATABASE_PRINT_NO_HEADER – не выводить названия столбцов таблицы (имена полей);
- DATABASE_PRINT_NO_INDEX – не выводить номера строк;
- DATABASE_PRINT_NO_FRAME – не выводить фрейм, разделяющий заголовок и данные;
- DATABASE_PRINT_STRINGS_RIGHT – выравнивать строки вправо.
Если flags = 0, то выводятся столбцы и строки, заголовок и данные разделяются фреймом, строки выравниваются влево.
Функция возвращает количество выведенных записей или -1 в случае ошибки.
Воспользуемся функцией в следующем разделе.
К сожалению, функция не позволяет выводить подготовленные запросы с параметрами. При наличии параметров их потребуется внедрить в текст запроса на уровне MQL5.