- 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
Arbeiten mit der Datenbank
Arbeiten mit der Datenbank
Die Funktionen für die Arbeit mit Datenbanken basieren auf der beliebten und einfach zu bedienende SQLite Engine. Die bequeme Eigenschaft dieser Engine besteht darin, dass sich die gesamte Datenbank in einer einzigen Datei auf der Festplatte des Nutzer-PCs befindet.
Die Funktionen ermöglichen das bequeme Erstellen von Tabellen, das Hinzufügen von Daten, die Durchführung von Änderungen und die Arbeit mit Stichproben über den einfachen SQL-Anfragen:
- die Abfrage von Handelshistorie und Kursdaten aus beliebigen Formaten,
- das Speichern von Optimierungs- und Testergebnissen,
- Vorbereitung und Austausch von Daten mit anderen Analysepaketen,
- Speicherung von MQL5-Anwendungseinstellungen und -Status.
Abfragen erlauben die Verwendung von statistischen und mathematischen Funktionen.
Die Funktionen für die Arbeit mit Datenbanken ermöglichen es, die sich am häufigsten wiederholenden Operationen zur Behandlung großer Datenfelder durch SQL-Anfragen zu ersetzen, so dass es oft möglich ist, die Aufrufe DatenbankAusführen/DatenbankVorbereiten zu verwenden, anstatt komplexe Schleifen und Vergleiche zu programmieren. Verwenden Sie die Funktion DatabaseReadBind, um ganz einfach die Abfrageergebnisse in einer vorgefertigten Struktur zu erhalten. Die Funktion ermöglicht das Lesen aller Datensatzfelder auf einmal innerhalb eines einzigen Aufrufs.
Um das Lesen, Schreiben und Modifizieren zu beschleunigen, kann eine Datenbank mit dem Flag DATABASE_OPEN_MEMORY im RAM geöffnet/angelegt werden, obwohl eine solche Datenbank nur für eine bestimmte Anwendung verfügbar ist und nicht gemeinsam genutzt wird. Bei der Arbeit mit Datenbanken, die sich auf der Festplatte befinden, sollten Einfügungen/Änderungen von Massendaten in Transaktionen mit DatabaseTransactionBegin/DatabaseTransactionCommit/DatabaseTransactionRollback umhüllt werden. Dies beschleunigt den Prozess um das Hundertfache.
Um die Arbeit mit den Funktionen zu beginnen, lesen Sie den Artikel SQLite: Natives Arbeiten mit SQL-Datenbanken in MQL5.
Funktion |
Aktion |
---|---|
Öffnet oder erstellt die angegebene Datenbankdatei |
|
Schließt die Datenbank |
|
Importieren von Daten aus einer Datei in eine Tabelle |
|
Exportiert eine Tabelle oder das Ergebnis einer SQL-Anfrage in eine CSV-Datei |
|
Druckt eine Tabelle oder ein Ergebnis der SQL-Anfrage im Experten-Journal aus |
|
Prüft das Vorhandensein der Tabelle in einer Datenbank |
|
Ausführung einer Anfrage an die angegebene Datenbank |
|
Erstellt das Handle für die Anfragen, die durch DatabaseRead() ausgeführt werden kann |
|
Rücksetzen einer Anfrage, wie nach dem Aufruf von DatabasePrepare() |
|
Setzt einen Parameterwert in einer Anfrage |
|
Setzt einen Parameterarray als Parameterwert |
|
Wechselt zum nächsten Eintrag als Ergebnis einer Anfrage |
|
Wechselt zum nächsten Datensatz und liest aus ihm Daten in die Struktur |
|
Entfernt eine Anfrage, die durch DatabasePrepare() erstellt wurde |
|
Startet die Ausführung der Transaktion |
|
Schließt die Ausführung der Transaktion ab |
|
Zurücksetzen der Transaktionen |
|
Abrufen der Felderanzahl einer Anfrage |
|
Abrufen des Feldnamens nach dem Index |
|
Abrufen des Feldtyps nach dem Index |
|
Abrufen der Feldgröße in Bytes |
|
Abrufen des Feldwerts als Zeichenkette aus dem aktuellen Datensatz |
|
Abrufen des Integer-Werts aus dem aktuellen Datensatz |
|
Abrufen des Long-Werts aus dem aktuellen Datensatz |
|
Abrufen des Double-Wertes aus dem aktuellen Datensatz |
|
Abrufen des Feldwerts als Array aus dem aktuellen Datensatz |
- mode – Modus
- median – Median (50. Perzentil)
- percentile_25 – 25. Perzentil
- percentile_75
- percentile_90
- percentile_95
- percentile_99
- stddev oder stddev_samp — Standardabweichung der Stichprobe
- stddev_pop — Standardabweichung der Grundgesamtheit
- variance or var_samp — Varianz der Stichprobe
- var_pop — Varianz der Grundgesamtheit
- acos(X) - Arkuscosinus im Bogenmaß
- acosh(X) - hyperbolischer Arkuscosinus
- asin(X) - Arkussinus im Bogenmaß
- asinh(X) - hyperbolischer Arkussinus
- atan(X) - Arkustangens im Bogenmaß
- atan2(X,Y) - Arkustangens im Bogenmaß des Verhältnisses X/Y
- atanh(X) - hyperbolischer Arkustangens
- ceil(X) - Aufrunden auf eine ganze Zahl
- ceiling(X) - Aufrunden auf eine ganze Zahl
- cos(X) - Cosinus des Winkels im Bogenmaß
- cosh(X) - hyperbolischer Cosinus
- degrees(X) - Umrechnung eines Bogenmaßes in einen Winkel
- exp(X) - Exponent
- floor(X) - Abrunden auf eine ganze Zahl
- ln(X) - natürlicher Logarithmus
- log(B,X) - Logarithmus zur angegebenen Basis
- log(X) - dezimaler Logarithmus
- log10(X) - dezimaler Logarithmus
- log2(X) - Logarithmus zur Basis 2
- mod(X,Y) - Rest der Division
- pi() - Näherung von Pi
- pow(X,Y) - potenzieren der angegebenen Basis mit dem Exponenten
- power(X,Y) – potenzieren der angegebenen Basis mit dem Exponenten
- radians(X) - wandelt den Winkel in Bogenmaß um
- sin(X) – Sinus eines Winkels in Bogenmaß
- sinh(X) - hyperbolischer Sinus
- sqrt(X) - Quadratwurzel
- tan(X) - Tangens eines Winkels in Bogenmaß
- tanh(X) - hyperbolischer Tangens
- trunc(X) - Abschneiden auf die ganze Zahl, die näher 0 ist
Beispiel:
select
|