Печать таблиц и 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.