Diskussion zum Artikel "SQLite: Natives Arbeiten mit SQL-Datenbanken in MQL5" - Seite 11

 
Fernando Carreiro #:

Aber ist das nicht genau der Ort, an dem ich Ihnen gesagt habe, wo Sie es finden würden?

Dann finden Sie es in "%APPDATA%\MetaQuotes\Terminal\Common\Files".

Du hattest recht, aber ich habe ihn dort gestern nicht gefunden, es gibt nur eine Struktur in der Datei "signals.sqlite" und ich vermute, dass es Daten in der Datei signals.dat gibt

aber es steht in der Dokumentation
Parameter

Dateiname

[in] Dateiname relativ zum Ordner "MQL5\Files".

 
Zbigniew Mirowski #:
Sie hatten recht, aber ich habe ihn gestern nicht gefunden, es gibt nur eine Struktur in der Datei "signals.sqlite" und ich vermute, dass es Daten in der Datei "signals.dat" gibt

Nein! Ich habe Ihnen bereits gesagt, dass die"signals.dat" eine interne MetaTrader-Datendatei ist und nichts mit SQLite zu tun hat.

In der Datei"signals.dat" speichert MetaTrader die Informationen über Signale, die mit der Funktion " Handelssignale" abgerufen werden können ...

Code-Basis

Auflistung aller Eigenschaften von MT5 Signalen in einer CSV-Datei

Fernando Carreiro, 2022.04.21 15:14

Dieser einfache, schnelle und schmutzige Skriptcode gibt eine CSV-Datei mit allen Eigenschaften der Signale aus, die von der MQL5 Trade Signals-Funktionalität gemeldet werden.

Documentation on MQL5: Trade Signals
Documentation on MQL5: Trade Signals
  • www.mql5.com
Trade Signals - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 
Zbigniew Mirowski #: aber es steht in der Dokumentation. parameters, filename, [in] Dateiname relativ zum Ordner "MQL5\Files".

Aber Sie haben das Flag"DATABASE_OPEN_COMMON" verwendet, das den Speicherort ändert. Verwenden Sie dieses Flag also nicht, wenn Sie die Datei nicht im allgemeinen Ordner haben wollen.

DATENBANK_ÖFFNEN_GEMEINSAM

Die Datei befindet sich im gemeinsamen Ordner aller Terminals

 
Fernando Carreiro #:

Sie haben jedoch das Flag"DATABASE_OPEN_COMMON" verwendet, das den Speicherort ändert. Verwenden Sie dieses Flag also nicht, wenn Sie nicht wollen, dass die Datenbank im allgemeinen Ordner liegt.

DATENBANK_ÖFFNEN_GEMEINSAM

Die Datei befindet sich im gemeinsamen Ordner aller Terminals

Ok, ich habe verstanden und finde die Daten in signals.sqlite-wal:))

Vielen Dank für Ihre Hilfe)

 
Zbigniew Mirowski #: Ok, ich verstehe. Wo sind dann die Daten? Ich lade und erhalte eine Bestätigung signals.sqlite geöffnet

CS 0 12:43:16.106 SignalsBasa (EURUSD,H1) DB: succesfull
Das Dokument nach dem Laden der Daten ist immer noch 8 kb und ich kann die Daten nicht laden und empfangen
2022.11.30 12:55:49.103 CreateDB (EURUSD,H1) DB: signals.sqlite geöffnet
2022.11.30 12:55:49.103 CreateDB (EURUSD,H1) 0: 0,0,0.0,0.0

Sie haben aber bereits angegeben, dass Sie die Datei gefunden haben ...

"Wow, ich habe die Datei "signals.sqlite" gefunden" C:\Users\name\AppData\Roaming\MetaQuotes\Terminal\Common\Files"

Wo liegt also das Problem?

Die Datei"signals.sqlite" enthält Struktur und Daten in einer Datei. Öffnen Sie sie mit MetaEditor und sehen Sie sich die Daten selbst an - Arbeiten mit SQL-Datenbanken - MetaEditor Hilfe

 
Zbigniew Mirowski #: ok, ich verstehe und finde Daten in signals.sqlite-wal:)) Vielen Dank für Ihre Hilfe)

Sie sind willkommen!

 

In MetaEditor können nur maximal 23 Spalten von Datenbanktabellen angezeigt werden .

Ist es möglich, diese Beschränkung aufzuheben?

 
Anatoli Kazharski #:

In MetaEditor können nur maximal 23 Spalten der Datenbanktabelle angezeigt werden .

Ist es möglich, diese Beschränkung aufzuheben?

Behoben in Beta 3531 mit Erhöhung der Spaltenzahl auf 64.
 
Irgendwann gab es irgendwo eine Antwort über einfache und doppelte Anführungszeichen. Nicht wortwörtlich, aber nahe am Text - "arbeitet seit langem mit doppelten Anführungszeichen". Um auf die Arbeit mit Tabellen zurückzukommen: Der Versuch, Text in doppelten Anführungszeichen in eine Tabelle zu schreiben, schlägt fehl. Wenn Sie den Text jedoch erst in einfache und dann in doppelte Anführungszeichen einschließen, wird der Schreibvorgang erfolgreich abgeschlossen. Was ist die richtige Regel für einfache und doppelte Anführungszeichen beim Schreiben von Text in eine Tabelle?
Optionen und Ergebnisse :
erfolgreich -
         AddTable_TstDate(i,
                          iTime(Symbol(),PERIOD_CURRENT,i),
                          iHigh(Symbol(),PERIOD_CURRENT,i),
                          iTime(Symbol(),PERIOD_CURRENT,i),
                          iLow(Symbol(),PERIOD_CURRENT,i),
                          IntegerToString(iTime(Symbol(),PERIOD_CURRENT,i)),
                          1121,
                          "'string_no_error'");

nicht erfolgreich -

         AddTable_TstDate(i,
                          iTime(Symbol(),PERIOD_CURRENT,i),
                          iHigh(Symbol(),PERIOD_CURRENT,i),
                          iTime(Symbol(),PERIOD_CURRENT,i),
                          iLow(Symbol(),PERIOD_CURRENT,i),
                          IntegerToString(iTime(Symbol(),PERIOD_CURRENT,i)),
                          1121,
                          "string_error");

Ich möchte darauf hinweisen, dass die Umwandlung einer ganzen Zahl in eine Zeichenkette keinen Fehler beim Schreiben in eine Tabelle verursacht.

 

Liebe Entwickler, bitte sagen Sie mir, warum es nicht möglich ist, eine bestehende Datenbank aus einer Datei anzuhängen (ATTACH DATABASE)?

Wie ist es dann möglich, eine Datenbank aus dem RAM anzuhängen...?

Ich habe den Code beigefügt.

Das Skript create_databases.mq5 erstellt eine Datenbank. Das Skript attach_mem_db.mq5 fügt die Datenbank aus dem RAM hinzu. Das Skript attach_other_db.mq5 kann jedoch keine vorhandene Datenbank anhängen.