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

 
Renat Fatkhullin #:
Danke, wir werden uns das ansehen.

Gleichfalls!

Sie sollten auch ON DELETE und ON UPDATE überprüfen:

  • NO ACTION
  • SET NULL
  • SET DEFAULT
  • RESTRICT
  • CASCADE

Ohne dies wird die Arbeit sehr kompliziert.

 
Anatoli Kazharski #:

Vielen Dank für die Antwort!

Aus irgendeinem Grund bekomme ich nicht das Ergebnis, das ich erwarte:

//---

Wo liegt der Fehler?

Und das ist etwas, mit dem ich auch gerne umgehen würde:

Unser Fehler war, dass wir ohne SQLITE_DEFAULT_FOREIGN_KEYS gebaut haben.

Ist bereits behoben und funktioniert - wird heute Abend in der Beta verfügbar sein. Die Tabelle mit FOREIGN KEYS muss für das obige Beispiel neu erstellt werden.

Wir werden uns die Befehle im Panel später ansehen.

 
Renat Fatkhullin #:

Unser Fehler war, dass wir ohne SQLITE_DEFAULT_FOREIGN_KEYS gebaut haben.

Er ist bereits behoben und funktioniert - wird heute Abend in der Beta-Version verfügbar sein. Die Tabelle mit FOREIGN KEYS muss für das obige Beispiel neu erstellt werden.

Wir werden uns die Befehle im Panel später ansehen.

Vielen Dank! Ich werde es auf jeden Fall testen.

 
Hotkey F9 - Anfrage ausführen funktioniert nicht. Sie können die Erwartung der angegebenen kann gesehen werden, wenn Sie den Cursor auf die Schaltfläche "Ausführen" setzen. Aber weder beim Drücken von F9 mit dem Cursor in der Befehlszeile, noch beim Bewegen des Cursors (Mauszeigers) zu anderen (anderen) Positionen, funktioniert das angegebene F9 nicht. Das Drücken von "Ausführen" mit der Maus ist nicht attraktiv.
 

Hallo,

Irgendetwas scheint nicht zu stimmen.
Ich habe eine Datenbank "signals.sqlite" erstellt und eine Bestätigung erhalten, dass sie existiert. Ich habe die Daten in der Datenbank gespeichert und die Bestätigung erhalten, dass 63 Datensätze gespeichert wurden. Leider kann ich nichts aus der Datenbank lesen, und wenn ich die Datenbank überprüfe, kann ich die Datei "signals.sqlite" nicht finden. Allerdings finde ich das Verzeichnis in XM MT5/Bases/signals und in diesem Verzeichnis die Datei "signals.dat", die für mich nicht lesbar ist und eine Größe von 3845 kb hat.
Die Frage ist, wo kann ich die Datei "signals.sqlite" finden und wenn nicht, wie kann ich sie bearbeiten?

Ich benutze XM MT5 build 3521

 
Zbigniew Mirowski .sqlite" erstellt und die Bestätigung erhalten, dass sie existiert. Ich habe die Daten in der Datenbank gespeichert und die Bestätigung erhalten, dass 63 Datensätze gespeichert wurden. Leider kann ich nichts aus der Datenbank lesen, und wenn ich die Datenbank überprüfe, kann ich die Datei "signals.sqlite" nicht finden. Allerdings finde ich das Verzeichnis in XM MT5/Bases/signals und in diesem Verzeichnis die Datei "signals.dat", die für mich nicht lesbar ist und eine Größe von 3845 kb hat. Die Frage ist, wo kann ich die Datei "signals.sqlite" finden und wenn nicht, wie kann ich sie bearbeiten? Ich benutze XM MT5 build 3521

Die Datei ist normalerweise in "<Datenordner>\MQL5\Files" gespeichert, es sei denn, Sie haben das Flag DATABASE_OPEN_COMMONverwendet.

Die "signals.dat" hat nichts mit SQLite zu tun.

 
Fernando Carreiro #:

Die Datei wird normalerweise in "<Datenordner>\MQL5\Files" gespeichert, es sei denn, Sie haben das Flag DATABASE_OPEN_COMMONverwendet.

Die Datei "signals.dat" hat nichts mit SQLite zu tun.

Hallo, Fernando, danke für die Antwort

Ich habe es erwartet, weil es in der Beschreibung steht, aber leider ist das Dateiverzeichnis leer und ich habe die Datenbank mit diesem Befehl erstellt:

filename="signals.sqlite"

int db=DatabaseOpen(filename, DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE |DATABASE_OPEN_COMMON);

z.B. mit DATABASE_OPEN_COMMON Flag


DATENBANK_OPEN_COMMON

Die Datei befindet sich im gemeinsamen Ordner aller Terminals


Wie ist ii zu interpretieren?
 

@Zbigniew Mirowski #: I expected it, because it is in the description, but unfortunately the files directory is empty and I created the database with this command:

filename="signals.sqlite"

int db=DatabaseOpen(filename, DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE |DATABASE_OPEN_COMMON);

z.B. mit DATABASE_OPEN_COMMON-Flag

DATENBANK_OPEN_COMMON

Die Datei befindet sich in dem gemeinsamen Ordner aller Terminals

wie ist ii zu interpretieren?

Dann finden Sie sie in"%APPDATA%\MetaQuotes\Terminal\Common\Files".
 
Fernando Carreiro #:
Dann finden Sie es in"%APPDATA%\MetaQuotes\Terminal\Common\Files".

Nun habe ich aber ein neues Problem. Ich bin zu dem Schluss gekommen, dass der Fehler vielleicht darin liegt, dass ich diesen MT5 auf dem Laufwerk C in den Programmdateien installiert habe und vielleicht gibt es einige Zugriffsbeschränkungen im neuen Win11. Also installierte ich eine neue Instanz auf einer anderen Festplatte, ein neues Demokonto und versuchte, diese Datenbank dort zu installieren und... Ich bekam:
2022.11.30 10:37:26.036 CreateDB (EURUSD,H1) database error, table Signals already exists.
Wenn ich eine Datenbank erstelle, erstelle ich sofort Tabellen. Create wirft keinen Fehler, weil es auch die Datenbank öffnet, aber das Erstellen einer Tabelle wirft einen Fehler.
Ich habe den ganzen Computer durchsucht und die "signals.sqlite" Dateien wurden nicht gefunden, aber ich habe die "signals.dat" Datei wieder gefunden

Wow, ich habe die Datei "signals.sqlite" gefunden

C:\Users\name\AppData\Roaming\MetaQuotes\Terminal\Common\Files

Die Datei "signals.sqlite" enthält nur eine Struktur, und ich vermute, dass die Datei signals.dat Daten enthält

C:\Benutzername\AppData\Roaming\MetaQuotes\Terminal\Common\Files

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

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

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