DatabaseExport

Exportiert eine Tabelle oder das Ergebnis einer SQL-Anfrage in eine CSV-Datei. Die erstellte Datei ist in UTF-8 encodiert.

long  DatabaseExport(
   int           database,           // Handle der Datenbank, erhalten von DatabaseOpen
   const string  table_or_sql,       // ein Tabellenname oder eine SQL-Anfrage
   const string  filename,           // der Name der CSV-Datei für den Datenexport
   uint          flags,              // Kombination der Flags
   const string  separator           // Trennzeichen in der CSV-Datei
   );

Parameter

database

[in]  Handle der Datenbank, erhalten von DatabaseOpen().

table_or_sql

[in]   Ein Name einer Tabelle oder ein Text einer SQL-Anfrage, deren Ergebnisse in eine bestimmte Datei exportiert werden sollen.

filename

[in]  Ein Dateiname für den Datenexport. Der Pfad wird relativ zum Ordner MQL5\Files festgelegt.

flags

[in] Kombination der Flags, die die Ausgabe in eine Datei festlegen. Die Flags sind wie folgt definiert:

DATABASE_EXPORT_HEADER                 – Darstellung als Zeichenkette mit Feldnamen
DATABASE_EXPORT_INDEX                    – Darstellung der Indices als Zeichenketten
DATABASE_EXPORT_NO_BOM                – keine BOM-Markierungen zu Anfang der Datei einfügen (standardmäßig wird BOM eingetragen)
DATABASE_EXPORT_CRLF                     – Verwendung von CRLF für den Zeilenumbruch (standardmäßig ist es nur LF)
DATABASE_EXPORT_APPEND                 – Daten am Ende einer bestehenden Datei anhängen (standardmäßig werden die Dateien überschrieben). Wenn die Datei nicht existiert wird sie erstellt.
DATABASE_EXPORT_QUOTED_STRINGS – Darstellung von Zeichenketten in Anführungszeichen.
DATABASE_EXPORT_COMMON_FOLDER - eine CSV-Datei wird im Common-Verzeichnis des Terminals erstellt \Terminal\Common\File.

separator

[in]  Trennzeichen der Daten. Wenn NULL angegeben wurde, wird der Tabulator '\t' als Trennzeichen verwendet.  Eine leere Zeichenkette "" wird als gültiges Trennzeichen betrachtet, aber die erhaltene CSV-Datei kann nicht als Tabelle gelesen werden - sie wird als eine Reihe von Zeichenfolgen betrachtet.

 

Rückgabewert

Anzahl der exportierten Einträge oder im Fehlerfall einen negativen Wert. Um den Fehlercode zu erhalten, verwenden Sie GetLastError(), die möglichen Antworten sind:

  • ERR_INTERNAL_ERROR (4001)                       – kritischer Laufzeitfehler;
  • ERR_INVALID_PARAMETER (4003)                  – Der Pfad zur Datenbankdatei ist leer oder es wurde eine inkompatible Kombination der Flags übergeben;
  • ERR_NOT_ENOUGH_MEMORY (4004)              - ungenügend Speicher;
  • ERR_FUNCTION_NOT_ALLOWED(4014)           – angegebene Pipe ist nicht erlaubt;
  • ERR_PROGRAM_STOPPED(4022)                    – Operation abgebrochen (MQL-Programm gestoppt);
  • ERR_WRONG_FILENAME (5002)                     - Ungültiger Dateiname;
  • ERR_TOO_LONG_FILENAME (5003)                 - absoluter Pfad überschreitet die Maximallänge;
  • ERR_CANNOT_OPEN_FILE(5004)                    – Datei konnte nicht zum Schreiben geöffnet werden;
  • ERR_FILE_WRITEERROR(5026)                      – In die Datei konnte nicht geschrieben werden;
  • ERR_DATABASE_INTERNAL (5120)                 – interner Datenbankfehler;
  • ERR_DATABASE_INVALID_HANDLE (5121)      - ungültiges Handle der Datenbank;
  • ERR_DATABASE_QUERY_PREPARE(5125)        – Fehler bei der Anfrageerstellung;
  • ERR_DATABASE_QUERY_NOT_READONLY       – es sind Nur-Lese-Anfragen erlaubt.

 

Hinweis

Wenn die Abfrageergebnisse exportiert werden, sollte die SQL-Abfrage mit "SELECT" oder "select" beginnen. Mit anderen Worten, die SQL-Anfrage kann den Datenbankstatus nicht ändern, andernfalls schlägt DatabaseExport() mit einer Fehlermeldung fehl.

Datenbank-String-Werte können das Konvertierungszeichen ('\r' oder '\r\n' ) sowie den Satz der Trennzeichen für die Werte im Parameter Trenner enthalten. Stellen Sie in diesem Fall sicher, dass Sie das Flag DATABASE_EXPORT_QUOTED_STRINGS im Parameter 'flags' verwenden. Wenn dieses Flag vorhanden ist, werden alle angezeigten Zeichenfolgen in doppelte Anführungszeichen gesetzt. Wenn eine Zeichenkette ein doppeltes Anführungszeichen enthält, wird es durch zwei doppelte Anführungszeichen ersetzt.

 

Siehe auch

DatabasePrint, DatabaseImport