Discussion de l'article "SQLite Gestion native des bases de données SQL dans MQL5" - page 10

 
Renat Fatkhullin #:
Merci, nous allons vérifier.

De même !

Vous devriez également vérifier ON DELETE et ON UPDATE:

  • PAS D'ACTION
  • SET NULL
  • SET DEFAULT
  • RESTRICT
  • CASCADE

Sans cela, le travail devient très compliqué.

 
Anatoli Kazharski #:

Merci de votre réponse !

Pour une raison ou une autre, je n'obtiens pas le résultat escompté :

//---

Où se trouve l'erreur ?

Et c'est quelque chose que j'aimerais traiter également :

Notre erreur a été de construire sans SQLITE_DEFAULT_FOREIGN_KEYS.

Déjà corrigé et fonctionnel - sera disponible en beta ce soir. La table avec les FOREIGN KEYS devra être recréée pour l'exemple ci-dessus.

Nous verrons les commandes dans le panneau plus tard.

 
Renat Fatkhullin #:

Notre erreur a été de construire sans SQLITE_DEFAULT_FOREIGN_KEYS.

C'est déjà corrigé et fonctionne - sera disponible en beta ce soir. La table avec les FOREIGN KEYS devra être recréée pour l'exemple ci-dessus.

Nous verrons les commandes dans le panneau plus tard.

Je vous remercie. Je vais certainement le tester.

 
La touche de raccourci F9 - exécuter la demande ne fonctionne pas. Vous pouvez voir l'attente de la déclaration si vous placez le curseur sur le bouton "Exécuter". Mais la touche F9 ne fonctionne pas si l'on appuie sur F9 alors que le curseur se trouve dans la ligne de commande, ou si l'on déplace le curseur (pointeur de la souris) vers d'autres (autres) positions. L'utilisation de la souris pour appuyer sur "Exécuter" n'est pas attrayante.
 

Bonjour,

Quelque chose ne semble pas aller.
J'ai créé une base de données "signals.sqlite" et j'ai reçu la confirmation qu'elle existait. J'ai sauvegardé les données dans la base et j'ai reçu la confirmation que 63 enregistrements ont été sauvegardés. Malheureusement, je ne parviens pas à lire quoi que ce soit dans la base de données et lorsque je vérifie la base de données, je ne trouve pas le fichier "signals.sqlite". Cependant, je trouve le répertoire dans XM MT5/Bases/signals et dans ce répertoire le fichier "signals.dat", qui est illisible pour moi et a une taille de 3845 kb.
La question est où puis-je trouver le fichier "signals.sqlite" et si non, comment puis-je l'éditer ?

J'utilise XM MT5 build 3521

[Supprimé]  
Zbigniew Mirowski .sqlite" et j'ai obtenu la confirmation qu'elle existait. J'ai sauvegardé les données dans la base et j'ai reçu la confirmation que 63 enregistrements avaient été sauvegardés. Malheureusement, je ne parviens pas à lire quoi que ce soit dans la base de données et lorsque je vérifie la base de données, je ne trouve pas le fichier "signals.sqlite". Cependant, je trouve le répertoire dans XM MT5/Bases/signals et dans ce répertoire le fichier "signals.dat", qui est illisible pour moi et a une taille de 3845 kb. La question est de savoir où je peux trouver le fichier "signals.sqlite" et si ce n'est pas le cas, comment puis-je l'éditer ? J'utilise XM MT5 build 3521

Le fichier est généralement stocké dans "<data folder>\MQL5\Files", sauf si vous avez utilisé l' option DATABASE_OPEN_COMMON.

Le fichier "signals.dat" n'a rien à voir avec SQLite.

 
Fernando Carreiro #:

Le fichier est généralement stocké dans "<data folder>\MQL5\Files", sauf si vous avez utilisé l' option DATABASE_OPEN_COMMON.

Le fichier "signals.dat" n'a rien à voir avec SQLite.

Bonjour Fernando, merci pour la réponse

Je m'y attendais, car c'est dans la description, mais malheureusement le répertoire des fichiers est vide et j'ai créé la base de données avec cette commande :

filename="signals.sqlite"

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

par exemple, avec l'indicateur DATABASE_OPEN_COMMON


DATABASE_OPEN_COMMON

Le fichier se trouve dans le dossier commun de tous les terminaux.


comment interpréter ii ?
[Supprimé]  

@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) ;

par exemple, avec l'indicateur DATABASE_OPEN_COMMON

DATABASE_OPEN_COMMON

Le fichier se trouve dans le dossier commun de tous les terminaux.

comment interpréter ii ?

Vous le trouverez dans"%APPDATA%\MetaQuotes\Terminal\Common\Files".
 
Fernando Carreiro #:
Vous le trouverez alors dans"%APPDATA%\MetaQuotes\Terminal\Common\Files".

J'ai maintenant un nouveau problème. J'en suis venu à la conclusion que l'erreur venait peut-être du fait que j'avais installé ce MT5 sur le disque C dans Program files et qu'il y avait peut-être des restrictions d'accès dans le nouveau Win11. J'ai donc installé une nouvelle instance sur un autre disque, un nouveau compte de démonstration et j'ai essayé d'y installer cette base de données et... J'ai obtenu :
2022.11.30 10:37:26.036 CreateDB (EURUSD,H1) database error, table Signals already exists.
Lorsque je crée une base de données, je crée immédiatement des tables. Create ne provoque pas d'erreur, car il ouvre également la base de données, mais la création d'une table provoque une erreur.
J'ai cherché dans tout l'ordinateur et les fichiers "signals.sqlite" n'ont pas été trouvés, mais j'ai trouvé à nouveau le fichier "signals.dat".

Wow, j'ai trouvé le fichier "signals.sqlite"

C:``Users\NAppData\Roaming\NMetaQuotes\NTerminal\Common\NFiles

Il n'y a que de la structure dans le fichier "signals.sqlite" et je soupçonne qu'il y a des données dans le fichier signals.dat

C:\Users\NAppData\Roaming\MetaQuotes\Terminal\Common\Files

[Supprimé]  
Zbigniew Mirowski #: J'ai trouvé le fichier "signals.sqlite" à l'adresse suivante : C:\NUsers\NAppAppData\NRoaming\NMetaQuotes\NTerminal\NCommon\NFiles .

Mais n'est-ce pas exactement l'endroit où je vous ai dit que vous le trouveriez ?

Alors vous le trouverez dans "%APPDATA%\MetaQuotes\Terminal\Common\Files".