SQLite in MQL5: neue Funktionen und Leistungstests - Seite 6

 
Реter Konow:
Es ist besser, eine Ressource mit ResourceSave zu speichern, denn wenn man sie in EA integriert, erhält man ihren Inhalt mit ResourceReadImage in ein Array. Das ist bequem und schnell, aber nicht universell. Ich habe keine Binärdateien als Ressourcen integriert, daher weiß ich nicht, wie ich sie wieder lesbar machen kann.

Speichern Sie die Daten und integrieren Sie sie über Ressourcenvariablen. Dann können Sie alle Daten speichern, nicht nur BMPs. Was könnte einfacher sein?

 
Yury Kulikov:

Speichern Sie binäre Daten und integrieren Sie sie über Ressourcenvariablen. Dann können Sie alle Daten speichern, nicht nur BMPs. Was könnte einfacher sein?

Nun, es könnte einfach sein, aber ich habe keine Erfahrung damit. Ich werde es mir ansehen müssen.
 
Yury Kulikov:

Speichern Sie die Daten und integrieren Sie sie über Ressourcenvariablen. Dann können Sie alle Daten speichern, nicht nur BMPs. Was könnte einfacher sein?

Machen Sie dasselbe mit der Datenbank? Die Funktion FileSave unterstützt keine Zeichenketten. Nur mit Krücken ( Strings in Char-Array konvertieren).
 
Реter Konow:
Machen Sie dasselbe mit der Datenbank? Die Funktion FileSave unterstützt keine Zeichenketten. Es sei denn, Sie verwenden Krücken (konvertieren String in Char-Array).

FileSave ist nur ein Beispiel :) denken Sie größer und studieren Sie die Dateioperationen in mql ...

 

Ist jemand auf den Fehler 5621 (Library misuse error) gestoßen, wenn er versucht, eine Datenbank im Modus DATABASE_OPEN_MEMORY zu erstellen?

Der Fehler tritt wie gesagt an der leeren Stelle auf, d.h. die übliche Konstruktion funktioniert nicht und gibt dbHandle=-1 aus:

int dbHandle = DatabaseOpen("Btr",DATABASE_OPEN_MEMORY);

Wie geht man damit um?

 
Verwenden Sie den vordefinierten Datenbanknamen":memory:", um mit Datenbanken im Speicher zu arbeiten.
 
Sergey Lebedev:

Ist jemand auf den Fehler 5621 (Library misuse error) gestoßen, wenn er versucht, eine Datenbank im Modus DATABASE_OPEN_MEMORY zu erstellen?

Der Fehler tritt wie gesagt an der leeren Stelle auf, d.h. die übliche Konstruktion funktioniert nicht und gibt dbHandle=-1 aus:

int dbHandle = DatabaseOpen("Btr",DATABASE_OPEN_MEMORY);

Wie geht man damit um?

Hinzufügen des Flags DATABASE_OPEN_READWRITE

 

Die SQL-Funktionen in MQL5 sind großartig!

Es wäre jedoch interessant, die integrierte Sprache für den Zugriff auf externe Datenbanken wie MS SQL, ORACLE, SyBase, MySQL usw. zu verwenden. Ohne Verwendung einer DLL.

 

Danke für die Klarstellung, jetzt funktioniert das Öffnen der Datenbank im Modus DATABASE_OPEN_MEMORY!

 
Yuriy Zaytsev:

Die SQL-Funktionen in MQL5 sind großartig!

Es wäre jedoch interessant, die integrierte Sprache für den Zugriff auf externe Datenbanken wie MS SQL, ORACLE, SyBase, MySQL usw. zu verwenden.Ohne Verwendung einer DLL.

Dann gehen Sie zu: Arbeiten mit Netzwerkfunktionen oder MySQL ohne DLLs

Работа с сетевыми функциями, или MySQL без DLL: Часть I - коннектор
Работа с сетевыми функциями, или MySQL без DLL: Часть I - коннектор
  • www.mql5.com
Примерно год назад список сетевых функций в MQL5 пополнился функциями для работы с сокетами. Это открыло широкие возможности для программистов, которые разрабатывают продукты для Маркета, поскольку теперь можно реализовать то, чего раньше нельзя было сделать без динамических библиотек. Один из таких примеров мы рассмотрим в данном цикле из двух...