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

 
In welchem Ordner erwarten Sie ihn zu finden? Schauen Sie sich die Eröffnungsflaggen genau an
 
Rashid Umarov:
In welchem Ordner erwarten Sie ihn zu finden? Schauen Sie sich die Öffnungsflags genau an

Hier sind die Flags - int db=DatabaseOpen(filename, DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE | DATABASE_OPEN_COMMON);

Ich erwarte, dass dies in der Hilfe des MQL5/Files-Pakets angezeigt wird.

Aber dort ist nichts zu finden

 
Rashid Umarov:
In welchem Ordner erwarten Sie ihn zu finden? Schauen Sie sich die Anfangsflaggen genau an

Ich habe ein Video gemacht, wie ich das mache. Vielleicht ist etwas falsch....



 
Tango_X:

Hier sind die Flags - int db=DatabaseOpen(filename, DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE |DATABASE_OPEN_COMMON);

Laut der Hilfe im MQL5/Files-Paket erwarte ich Folgendes

Aber dort ist nichts zu finden

DATABASE_OPEN_COMMON ist nicht dort, wo Sie es suchen.


 
Alexey Viktorov:

DATABASE_OPEN_COMMON ist nicht dort, wo Sie es suchen.


Vielen Dank!

 

Liebe Entwickler, guten Tag an alle!

Ich mag die Verwendung von SQLite in MT5 SEHR, da ich von allen Vorteilen dieser Innovation durchdrungen bin, möchte ich hinzufügen....p.1 ))))

1. Es ist möglich, die Unterstützung für JSON-Funktionen innerhalb von Abfragen hinzuzufügen, von der Seite von SQLite wurde diese Funktion für eine ziemlich lange Zeit implementiert und ich benutze es aktiv in anderen Programmen..., und ich würde es gerne in MT5 verwenden, weil:

1.1 Es ist sehr praktisch, das Parsen und Sammeln von JSON funktioniert sofort und sehr schnell

1.2 Keine Notwendigkeit, Bibliotheken von Drittanbietern zu verwenden, um Antworten zu erstellen und zu zerlegen

1.3 Möglichkeit, Daten in Stapeln zu speichern und auf der Basisseite per SQL-Abfrage zu verarbeiten

1.4 Wenn sich die Serverantwort geändert hat oder in einem anderen Fall, genügt es, die SQL-Abfrage zu ändern und das Programm nicht neu zu kompilieren.

dies ist nur ein Teil der Vorteile...die in der aktuellen Implementierung für MT5 nicht vorhanden sind, ich gehe davon aus, dass eine alte Version von SQLite mit MT5.... verbunden ist

Im Allgemeinen bietet dies eine Menge Möglichkeiten für große Projekte in Multi-Server-Systemen, wo jeder Datenanbieter seine eigenen Strukturen hat, etc. zu skalieren.



2. Lesen Sie frühere Beiträge zum Thema einmaliger Zugriff sowohl für das Schreiben als auch für das Lesen aus der Datenbank....

Ich persönlich empfehle und verwende: PRAGMA journal_mode = WAL;

dies löst eine Menge Probleme mit dem Mehrfachzugriff auf Datenbanken und erhöht die Seriosität von SQLite...

2.1 Es ist besser, die Datenbank aus einer vorbereiteten Textdatei mit SQL-Code zu erstellen, die dem Projekt als Ressource beigefügt ist, und sie als variable Zeichenfolge zu verwenden

2.2 Es ist auch bequem, alle Abfragen als Ressourcendateien zu erstellen, und wenn Sie Daten in einer Abfrage ändern müssen, können Sie StringFormat verwenden...


3. In jedem meiner großen Projekte versuche ich, den aktuellen Mechanismus der Interaktion zwischen MT5 und SQLite zu verwenden, es wurde sehr bequem, mit Daten zu arbeiten, ein GROSSES DANKESCHÖN!

 
Daniil Kurmyshev:

Liebe Entwickler, einen guten Tag an alle!

Ich SEHR wie die Verwendung von SQLite in MT5, wie ich durch alle Vorteile dieser Innovation durchdrungen bin, möchte ich hinzufügen....p.1 ))).

1. Es ist möglich, die Unterstützung für JSON-Funktionen innerhalb von Abfragen hinzuzufügen, von der Seite von SQLite ist diese Funktion schon seit langem implementiert und ich benutze sie aktiv in anderen Programmen..., und ich würde sie gerne auch in MT5 hinzufügen:

1.1 Es ist sehr praktisch, das Parsen und Sammeln von JSON funktioniert sofort und sehr schnell

1.2 Keine Notwendigkeit, Bibliotheken von Drittanbietern zu verwenden, um Antworten zu erstellen und zu zerlegen

1.3 Möglichkeit, Daten in Stapeln zu speichern und auf der Basisseite per SQL-Abfrage zu verarbeiten

1.4 Wenn sich die Serverantwort geändert hat oder in einem anderen Fall, genügt es, die SQL-Abfrage zu ändern und das Programm nicht neu zu kompilieren und

dies ist nur ein Teil der Vorteile...die in der aktuellen Implementierung für MT5 nicht vorhanden sind, ich nehme an, dass eine alte Version von SQLite mit MT5.... verbunden ist

Generell bietet es viele Möglichkeiten für große Projekte, um sie in Multiserver-Systemen zu skalieren, in denen jeder Datenanbieter seine eigenen Strukturen hat, usw...



2. Ich habe frühere Beiträge zum Thema des einmaligen Zugriffs sowohl beim Schreiben als auch beim Lesen aus der Datenbank gelesen....

Ich persönlich empfehle und verwende: PRAGMA journal_mode = WAL;

dies löst viele Probleme mit Mehrfachzugriffen auf die Datenbank und erhöht die Seriosität von SQLite...

2.1 Es ist besser, eine Datenbank aus einer vorbereiteten Textdatei mit SQL-Code zu erstellen, die dem Projekt als Ressource beigefügt ist, und sie als variable Zeichenfolge zu verwenden

2.2 Es ist auch bequem, alle Abfragen als Ressourcendateien zu erstellen, und wenn Sie Daten in einer Abfrage ändern müssen, können Sie StringFormat verwenden...


3. In jedem meiner großen Projekte versuche ich, den aktuellen Mechanismus der Interaktion zwischen MT5 und SQLite zu verwenden, es wurde sehr bequem, mit Daten zu arbeiten, BIG DANKESCHÖN!

Natürlich wäre es schön, die Möglichkeit des gleichzeitigen Zugriffs auf die Datenbank für verschiedene Skripte zu geben. Daran haben die Entwickler nicht gedacht (((.

Offensichtlich wollen sie die MQL5-Tools nicht weiterentwickeln.

 
GEORGI ANIKIN:

Es wäre schön, wenn man verschiedenen Skripten die Möglichkeit des gleichzeitigen Zugriffs auf die Datenbank geben könnte. Daran haben die Entwickler nicht gedacht ((

Offensichtlich wollen sie die MQL5-Tools nicht weiterentwickeln.

Natürlich haben sie darüber nachgedacht.

Sie können von verschiedenen Skripten innerhalb des Terminals auf die gleichen Datenbanken und Tabellen zugreifen.

Hier ist ein Beispiel für einen gleichzeitigen Schreiber und Leser. Führen Sie es auf verschiedenen Diagrammen aus.

Dateien:
 
Renat Fatkhullin:

Natürlich haben wir das.

Sie können von verschiedenen Skripten innerhalb des Terminals auf dieselben Datenbanken und Tabellen zugreifen.

Hier ist ein Beispiel für einen gleichzeitigen Schreiber und Leser. Führen Sie es auf verschiedenen Diagrammen aus.

Renat, hallo!

Können Sie mir sagen, ob die Möglichkeit, JSON in der Datenbank zu speichern und damit zu arbeiten, zumindest in naher Zukunft implementiert werden wird?

 
Daniil Kurmyshev:

Renat, hallo!

Können Sie mir sagen, ob die Möglichkeit, JSON in der Datenbank zu speichern und damit zu arbeiten, zumindest in naher Zukunft implementiert werden wird?

Es wird morgen in der Beta 2840 sein:

  • SQLite Version 2.35.2

  • permanenter WAL-Modus, der es ermöglicht, mit der geöffneten Datenbank von verschiedenen Anwendungen aus zu arbeiten (bisher konnte MetaEditor nicht parallel zum Terminal arbeiten)

  • Erweiterung der statistischen Funktionen
        mode - mode,
        median - median (50 th percentile),
        percentile_25 - 25 th percentile,
        percentile_75 - 75 th percentile,
        percentile_90 - 90 th percentile,
        percentile_95 - 95 th percentile,
        percentile_99 - 99 th percentile,
        stddev or stddev_samp - sample standard deviation,
        stddev_pop - population standard deviation,
        variance or var_samp - sample variance,
        var_pop - population variance.
    Beispiel:
    select
      count(*) as book_count,
      cast(avg(parent) as integer) as mean,
      cast(median(parent) as integer) as median,
      mode(parent) as mode,
      percentile_90(parent) as p90,
      percentile_95(parent) as p95,
      percentile_99(parent) as p99
    from bookmarks;
  • neue mathematische Funktionen
        acos(X)
        acosh(X)
        asin(X)
        asinh(X)
        atan(X)
        atan2(X,Y)
        atanh(X)
        ceil(X)
        ceiling(X)
        cos(X)
        cosh(X)
        degrees(X)
        exp(X)
        floor(X)
        ln(X)
        log(B,X)
        log(X)
        log10(X)
        log2(X)
        mod(X,Y)
        pi()
        pow(X,Y)
        power(X,Y)
        radians(X)
        sin(X)
        sinh(X)
        sqrt(X)
        tan(X)
        tanh(X)
        trunc(X)
    
    
  • JSON-Unterstützung ist ebenfalls enthalten

    Wir werden später den neuen json-Typ in den Datenbankerstellungsassistenten aufnehmen.