SQLite in MQL5: neue Funktionen und Leistungstests - Seite 4

 
Pavel Kolchin:

Wenn Sie Daten zwischen Terminals austauschen wollen, wie wäre es dann, wenn Sie ein Terminal zum Bearbeiten und das andere nur zum Lesen anschließen? Und das alles über einen superschnellen Speicher

Wird es in mql4 funktionieren?

Memlib.mqh verwenden.

 
Dmitiry Ananiev:

Memlib.mqh verwenden.

habe nicht gefunden, was es ist

 
Sergey Dzyublik:

Bitte beachten Sie auch die folgenden Mängel, die ich festgestellt habe:

1) Die Beschreibung der Funktion DatabaseExecute ist nicht wahr, sondern von DatabasePrepare kopiert.

2) Unvollständige Beschreibung des ersten Parameters der FunktionDatabaseRead:intdatabase, // database handle obtained in DatabaseOpen;
Da DatabasePrepare vollständigere Informationen liefert: // erstellt ein Abfrage-Handle, das dann mit DatabaseRead() ausgeführt werden kann.

5) Es gibt einen Tippfehler in der Beschreibung des Parameters der Funktion DatabaseColumnName (es sollte heißen "to get the field name").

string&name// Verweis auf eine Variable zum Abrufen des Namenseiner Tabelle

Danke, der Fehler wurde korrigiert. Eine aktualisierte Fassung wird auf der Website unter der Rubrik Datenbankmanagement zur Verfügung stehen.

Документация по MQL5: Работа с базами данных
Документация по MQL5: Работа с базами данных
  • www.mql5.com
Важной особенностью данного движка является то, что вся база данных находится в единственном стандартном файле, который находится на компьютере пользователя. Простота реализации достигается за счёт того, что перед началом исполнения транзакции записи файл, содержащий базу данных, блокируется. При этом...
 
Eine SQL-Abfrage hat ein besonderes Format. Es handelt sich nicht um reines SQL. Alles wird innerhalb des Funktionsaufrufs und ohne Kommas zwischen den Zeichenfolgen geschrieben? Oder kann ichein String-Array initialisieren? Ich brauche Beispiele.
 
Rashid Umarov:

Danke, das Problem wurde behoben. Die Aktualisierung wird auf der Website unter der Rubrik " Database handling" veröffentlicht.


Die DatabaseRead-Parameter in der Beschreibung sind nicht korrekt.

Mussein Handle auf die SQL-Abfrage nehmen.


Ich habe bereits mein Projekt mit importierter sqlite3 dll auf die eingebaute Funktionalität umgeschrieben - alles ist in Ordnung.


P.S. Prüfen Sie die Funktion zum Zurücksetzen von LastError in Database.... Funktionen.

 
Renat Fatkhullin:
Eine solche Aufgabe haben wir überhaupt nicht vor uns.

Vor Ihren Augen, ja, das tut es nicht. Andererseits benötigen Entwickler seit langem eine Art von adäquatem, thread-sicherem Messaging-Mechanismus. Basen scheinen dafür eine gute Option zu sein, wenn auch nicht direkt, sondern durch zusätzliche thread-sichere Wrapper.

 
Vasiliy Sokolov:

Vor Ihren Augen, ja, das tut es nicht. Andererseits benötigen Entwickler seit langem eine Art von adäquatem, thread-sicherem Messaging-Mechanismus. Basen scheinen dafür eine gute Option zu sein, wenn auch nicht direkt, sondern durch zusätzliche thread-sichere Wrapper.

 
Renat Fatkhullin:

Höchstwahrscheinlich werden wir Ressourcen zulassen, und diese Dateien werden automatisch auf die Festplatte extrahiert, wenn wir das Programm zum ersten Mal starten.

Das heißt, dass die Basis im Inneren von ex5 nicht anschwellen wird. Mit der Datei kann nur auf der Festplatte gearbeitet werden.

Berücksichtigen Sie bitte auch eine weitere benötigte Funktion.
Wir brauchen eine Funktion DatabaseSaveMemoryToFile, die die als DATABASE_OPEN_MEMORY geöffnete Datenbank in einer Datei auf der Festplatte speichert.
Das bedeutet, dass der Speicher für die Geschwindigkeit des Datenaustauschs genutzt wird und, falls erforderlich, die Daten in einer Datei auf der Festplatte gespeichert werden.
Wie in Market Watch werden die Daten zuerst in Market Watch und dann in der Historie gespeichert.

Und eine Funktion zum Zurückziehen aus der Datei in den Speicher DatabaseExtractFileToMemory
So funktioniert die KDB+ Datenbank
 
Es ist vielleicht nicht allgemein bekannt, dass beim Speichern einer Ressource auf der Festplatte mit ResourceSave die nicht-farbigen Daten verzerrt werden. Diese Funktion ist nur für das Speichern von Bildern vorgesehen.

Damit soll das Problem der Einbeziehung der Datenbank in die Ressource und deren Speicherung auf der Festplatte gelöst werden.
 
Реter Konow:
Es ist vielleicht nicht allgemein bekannt, dass beim Speichern einer Ressource auf der Festplatte mit ResourceSave die nicht-farbigen Daten verzerrt werden. Diese Funktion ist nur für das Speichern von Bildern vorgesehen.

Hier stellt sich die Frage nach der Einbeziehung der Datenbank in die Ressource und ihrer Speicherung auf der Festplatte.

Die Aufnahme der Datenbankdatei in die Ressource ist höchstwahrscheinlich nur für das anfängliche Entpacken der Datei auf der Festplatte von ex5 vorgesehen.
Die weitere Arbeit mit der Datenbank erfolgt direkt mit der Datei.