Discussione sull’articolo "SQLite: Gestione nativa dei database SQL in MQL5" - pagina 10

 
Renat Fatkhullin #:
Grazie, lo controlleremo.

Allo stesso modo!

Dovreste controllare anche ON DELETE e ON UPDATE:

  • NESSUNA AZIONE
  • IMPOSTA NULL
  • IMPOSTA DEFAULT
  • RISTRETTO
  • CASCATA

Senza questo, il lavoro diventa molto complicato.

 
Anatoli Kazharski #:

Grazie per la risposta!

Per qualche motivo non sto ottenendo il risultato che mi aspettavo:

//---

Dov'è l'errore?

E questo è un problema che vorrei affrontare anch'io:

Il nostro errore è stato costruire senza SQLITE_DEFAULT_FOREIGN_KEYS.

Già corretto e funzionante - sarà disponibile in beta stasera. La tabella con le FOREIGN KEYS dovrà essere ricreata per l'esempio precedente.

I comandi del pannello saranno esaminati più avanti.

 
Renat Fatkhullin #:

Il nostro errore è stato quello di costruire senza SQLITE_DEFAULT_FOREIGN_KEYS.

Il problema è già stato risolto e funziona; sarà disponibile in beta stasera. La tabella con le FOREIGN KEYS dovrà essere ricreata per l'esempio precedente.

I comandi del pannello saranno esaminati più avanti.

Grazie! Lo testerò sicuramente.

 
Il tasto di scelta rapida F9 - Esegui richiesta non funziona. L'aspettativa di quanto dichiarato è visibile se si posiziona il cursore sul pulsante "Esegui". Tuttavia, né quando si preme F9 con il cursore nella riga di comando, né quando si sposta il cursore (puntatore del mouse) in altre posizioni, il tasto F9 dichiarato non funziona. L'uso del mouse per premere "Esegui" non è attraente.
 

Ciao,

Qualcosa non quadra però.
Ho creato un database "signals.sqlite" e ho avuto conferma che esiste. Ho salvato i dati nel database e ho avuto conferma che sono stati salvati 63 record. Purtroppo non riesco a leggere nulla dal database e quando controllo il database non trovo il file "signals.sqlite". Tuttavia, trovo la directory in XM MT5/Bases/signals e in questa directory il file "signals.dat", che per me è illeggibile e ha una dimensione di 3845 kb.
La domanda è: dove posso trovare il file "signals.sqlite" e, in caso contrario, come posso modificarlo?

Utilizzo XM MT5 build 3521

 
Zbigniew Mirowski .sqlite" e ho ottenuto la conferma che esiste. Ho salvato i dati nel database e ho ottenuto la conferma che sono stati salvati 63 record. Purtroppo non riesco a leggere nulla dal database e quando controllo il database non trovo il file "signals.sqlite". Tuttavia, trovo la directory in XM MT5/Bases/signals e in questa directory il file "signals.dat", che per me è illeggibile e ha una dimensione di 3845 kb. La domanda è: dove posso trovare il file "signals.sqlite" e, in caso contrario, come posso modificarlo? Utilizzo XM MT5 build 3521

Il file è solitamente memorizzato in "<cartella dati>\MQL5\Files" a meno che non si sia utilizzato il flag DATABASE_OPEN_COMMON.

Il file "signals.dat" non ha nulla a che fare con SQLite.

 
Fernando Carreiro #:

Il file è solitamente memorizzato in "<cartella dati>\MQL5\Files", a meno che non si sia utilizzato il flag DATABASE_OPEN_COMMON.

Il file "signals.dat" non ha nulla a che fare con SQLite.

Ciao, Fernando, grazie per la risposta

Me lo aspettavo, perché è nella descrizione, ma purtroppo la directory dei file è vuota e ho creato il database con questo comando:

filename="signals.sqlite"

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

ad esempio, con il flag DATABASE_OPEN_COMMON


DATABASE_OPEN_COMMON

Il file si trova nella cartella comune di tutti i terminali


come interpretare ii?
 

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

Ad esempio, con il flag DATABASE_OPEN_COMMON

DATABASE_OPEN_COMMON

Il file si trova nella cartella comune di tutti i terminali.

come interpretare ii?

Allora lo troverete in"%APPDATA%\MetaQuotes\Terminal\Common\Files".
 
Fernando Carreiro #:
Poi lo si troverà in"%APPDATA%\MetaQuotes\Terminal\Common\Files".

Ora ho un nuovo problema. Sono giunto alla conclusione che forse l'errore risiede nel fatto che ho installato questa MT5 sul disco C in File di programma e forse ci sono alcune restrizioni di accesso nel nuovo Win11. Così ho installato una nuova istanza su un altro disco, un nuovo conto demo e ho provato a installare il database lì e... Ho ottenuto:
2022.11.30 10:37:26.036 CreateDB (EURUSD,H1) errore di database, la tabella Signals esiste già.
Quando creo un database, creo immediatamente le tabelle. Create non dà errore, perché apre anche il database, ma la creazione di una tabella dà errore.
Ho cercato in tutto il computer e i file "signals.sqlite" non sono stati trovati, ma ho trovato di nuovo il file "signals.dat".

Wow, ho trovato il file "signals.sqlite"

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

c'è solo una struttura nel file "signals.sqlite" e sospetto che ci siano dati nel file signals.dat

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

 
Zbigniew Mirowski #: Wow, ho trovato il file "signals.sqlite" C:\Users\name\AppData\Roaming\MetaQuotes\Terminal\Common\Files

Ma non è esattamente dove vi ho detto di trovarlo?

Allora lo troverete in "%APPDATA%\MetaQuotes\Terminal\Common\Files".