- DatabaseOpen
- DatabaseClose
- DatabaseImport
- DatabaseExport
- DatabasePrint
- DatabaseTableExists
- DatabaseExecute
- DatabasePrepare
- DatabaseReset
- DatabaseBind
- DatabaseBindArray
- DatabaseRead
- DatabaseReadBind
- DatabaseFinalize
- DatabaseTransactionBegin
- DatabaseTransactionCommit
- DatabaseTransactionRollback
- DatabaseColumnsCount
- DatabaseColumnName
- DatabaseColumnType
- DatabaseColumnSize
- DatabaseColumnText
- DatabaseColumnInteger
- DatabaseColumnLong
- DatabaseColumnDouble
- DatabaseColumnBlob
DatabaseExport
Экспортирует таблицу или результат выполнения SQL-запроса в CSV-файл. Файл создается в кодировке UTF-8.
long DatabaseExport(
|
Параметры
database
[in] Хендл базы данных, который получен в DatabaseOpen().
table_or_sql
[in] Имя таблицы или текст SQL-запроса, результаты которого будут экспортированы в указанный файл.
filename
[in] Имя файла для экспорта данных. Путь задается относительно папки MQL5\Files.
flags
[in] Комбинация флагов из перечисления ENUM_DATABASE_EXPORT_FLAGS.
separator
[in] Разделитель данных. Если указан NULL, то в качестве разделителя будет использоваться символ табуляции '\t'. Пустая строка "" считается допустимым разделителем, но полученный CSV-файл не может быть прочитан как таблица – это будет набор строк.
Возвращаемое значение
Возвращает количество экспортированных записей или отрицательное значение в случае ошибки. Для получения кода ошибки используйте GetLastError(), возможные ответы:
- ERR_INTERNAL_ERROR (4001) – критическая ошибка исполняющей системы;
- ERR_INVALID_PARAMETER (4003) – путь к файлу базы содержит пустую строку или выставлена несовместимая комбинация флагов;
- ERR_NOT_ENOUGH_MEMORY (4004) - недостаточно памяти;
- ERR_FUNCTION_NOT_ALLOWED(4014) – указанный пайп не разрешён;
- ERR_PROGRAM_STOPPED(4022) – операция отменена (произошла остановка MQL программы);
- ERR_WRONG_FILENAME (5002) - некорректное имя файла;
- ERR_TOO_LONG_FILENAME (5003) - абсолютный путь к файлу превысил максимальную длину;
- ERR_CANNOT_OPEN_FILE(5004) – ошибка открытия файла на запись;
- ERR_FILE_WRITEERROR(5026) – ошибка записи в файл;
- ERR_DATABASE_INTERNAL (5120) – внутренняя ошибка базы данных;
- ERR_DATABASE_INVALID_HANDLE (5121) - невалидный хендл базы данных;
- ERR_DATABASE_QUERY_PREPARE(5125) – ошибка создания запроса;
- ERR_DATABASE_QUERY_NOT_READONLY – разрешен только запрос на чтение.
Примечание
Если экспортируются результаты запроса, то SQL-запрос должен начинаться с "SELECT" или "select". Другими словами, SQL-запрос не может изменять состояние базы данных, в противном случае DatabaseExport() завершится ошибкой.
Строковые значения в базе данных могут содержать символ перевода ('\r' или '\r\n' ), а также символ разделителя значений, заданный в параметре separator. В этом случае нужно обязательно использовать флаг DATABASE_EXPORT_QUOTED_STRINGS в параметре flags. При наличии этого флага все выводимые строки будут заключены в двойные кавычки, если же в строке содержится двойная кавычка, то она будет заменена на две двойные кавычки.
Идентификатор |
Описание |
---|---|
DATABASE_EXPORT_HEADER |
Выводить имена полей в первой строке |
DATABASE_EXPORT_INDEX |
Выводить номера строк |
DATABASE_EXPORT_NO_BOM |
Не вставлять метку BOM в начале файла (по умолчанию BOM вставляется) |
DATABASE_EXPORT_CRLF |
Для переноса строки использовать CRLF (по умолчанию LF) |
DATABASE_EXPORT_APPEND |
Дописывать данные в конец существующего файла (по умолчанию файл перезаписывается). Если файл не существует, то он будет создан. |
DATABASE_EXPORT_QUOTED_STRINGS |
Выводить строковые значения в двойных кавычках. |
DATABASE_EXPORT_COMMON_FOLDER |
CSV-файл будет создан в общей папке всех клиентских терминалов \Terminal\Common\File. |
Пример:
input int InpRates=100;
|
Смотри также