DatabaseExport

Exporta un recuadro o el resultado de la ejecución de una solicitud SQL a un archivo CSV. El archivo se crea en la codificación UTF-8.

long  DatabaseExport(
   int           database,           // manejador de base de datos recibido en DatabaseOpen
   const string  table_or_sql,       // nombre del recuadro o solicitud SQL
   const string  filename,           // nombre del archivo CSV para exportar los datos
   uint          flags,              // combinación de banderas
   const string  separator           // separador de datos en el archivo CSV
   );

Parámetros

database

[in]  Manejador de base de datos recibido en DatabaseOpen().

table_or_sql

[in]  Nombre del recuadro o solicitud SQL cuyos resultados serán exportados al archivo indicado.

filename

[in]  Nombre del archivo para exportar los datos. La ruta se establece con respecto a la carpeta MQL5\Files.

flags

[in]  Combinación de banderas que determina la muestra en el archivo. Las banderas se determinan de la forma siguiente:

DATABASE_EXPORT_HEADER                 — mostrar la línea con los nombres de los campos
DATABASE_EXPORT_INDEX                    — mostrar los números de las líneas
DATABASE_EXPORT_NO_BOM                — no incorporar la etiqueta BOM al inicio del archivo (por defecto, BOM se incorpora)
DATABASE_EXPORT_CRLF                     — para trasladar una línea, se utiliza CRLF (por defecto, LF)
DATABASE_EXPORT_APPEND                 — añadir datos al final de un archivo existente (por defecto, el archivo se reescribe). Si el archivo no existe, será creado.
DATABASE_EXPORT_QUOTED_STRINGS — mostrar los valores de línea entre comillas dobles.
DATABASE_EXPORT_COMMON_FOLDER - el archivo CSV se creará en la carpeta general de todos los terminales de cliente \Terminal\Common\File.

separator

[in]  Separador de datos. Si se indica NULL, se usará como separador el símbolo de tabulación '\t'.  La línea vacía "" se considera un separador permitido, pero el archivo CSV obtenido no puede ser leído como recuadro, se tratará de un conjunto de líneas.

 

Valor retornado

Retorna el número de entradas exportadas o un valor negativo en caso de error. Para obtener el código del error, use GetLastError(), posibles respuestas:

  • ERR_INTERNAL_ERROR (4001)                       — error crítico del sistema de ejecución;
  • ERR_INVALID_PARAMETER (4003)                  — la ruta al archivo de la base de datos contiene una línea vacía o se ha establecido una combinación de banderas incompatible;
  • ERR_NOT_ENOUGH_MEMORY (4004)              - memoria insuficiente;
  • ERR_FUNCTION_NOT_ALLOWED(4014)           — el pipe indicado no está permitido;
  • ERR_PROGRAM_STOPPED(4022)                    — la operación ha sido cancelada (el programa MQL se ha detenido);
  • ERR_WRONG_FILENAME (5002)                     - nombre de archivo incorrecto;
  • ERR_TOO_LONG_FILENAME (5003)                 - la ruta absoluta al archivo ha superado la longitud máxima;
  • ERR_CANNOT_OPEN_FILE(5004)                    — error de apertura del archivo para el registro;
  • ERR_FILE_WRITEERROR(5026)                      — error de escritura en el archivo;
  • ERR_DATABASE_INTERNAL (5120)                 — error interno en la base de datos;
  • ERR_DATABASE_INVALID_HANDLE (5121)      - manejador no válido de la base de datos;
  • ERR_DATABASE_QUERY_PREPARE(5125)        — error al crear la solicitud;
  • ERR_DATABASE_QUERY_NOT_READONLY       — se permite solo la solicitud de lectura.

 

Observación

Si se exportan los resultados de una solicitud, la solicitud SQL deberá comenzar con "SELECT" o "select". En otras palabras, una solicitud SQL no puede modificar la base de datos, en caso contrario, DatabaseExport() se finalizará con error.

Los valores de línea en la base de datos pueden contener el símbolo de conversión ('\r' o '\r\n' ), así como el símbolo de separación de valores establecido en el parámetro separator. En este caso, deberemos usar obligatoriamente la bandera DATABASE_EXPORT_QUOTED_STRINGS en el parámetro flags. Si se da esta bandera, todas las líneas mostradas finalizarán en comillas dobles, y si en una línea se contienen comillas dobles, serán sustituidas por dos comillas dobles.

 

Ver también

DatabasePrint, DatabaseImport