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

 
Fernando Carreiro #:

Ma non è esattamente dove vi ho detto che l'avreste trovato?

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

Avevi ragione, ma ieri non l'ho trovato lì, c'è solo la struttura nel file "signals.sqlite" e sospetto che ci siano dati nel file signals.dat

ma è nella documentazione
parametri

nome del file

[in] Nome del file relativo alla cartella "MQL5\Files".

 
Zbigniew Mirowski #:
Avevi ragione, ma ieri non l'ho trovato lì, c'è solo una struttura nel file "signals.sqlite" e sospetto che ci siano dati nel file signals.dat.

No! Vi ho già detto che il file"signals.dat" è un file di dati interno a MetaTrader e non ha nulla a che fare con SQLite.

Il file"signals.dat" è il luogo in cui MetaTrader memorizza le informazioni sui segnali che possono essere recuperati con la funzionalità Trade Signals...

Codice base

Elencare tutte le proprietà dei segnali MT5 in un file CSV

Fernando Carreiro, 2022.04.21 15:14

Questo semplice codice di script rapido e sporco produrrà un file CSV di tutte le proprietà dei segnali come riportato dalla funzionalità Trade Signals di MQL5.

Documentation on MQL5: Trade Signals
Documentation on MQL5: Trade Signals
  • www.mql5.com
Trade Signals - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 
Zbigniew Mirowski #: ma è nella documentazione. parameters, filename, [in] Nome del file relativo alla cartella "MQL5\Files".

Ma avete usato il flag"DATABASE_OPEN_COMMON" che cambia la posizione. Quindi non usate questo flag se non volete che si trovi nella cartella comune.

DATABASE_OPEN_COMMON

Il file si trova nella cartella comune di tutti i terminali

 
Fernando Carreiro #:

Ma avete usato il flag"DATABASE_OPEN_COMMON" che cambia la posizione. Quindi non utilizzare questo flag se non si vuole che il file si trovi nella cartella comune.

DATABASE_OPEN_COMMON

Il file si trova nella cartella comune di tutti i terminali

Ok, ho capito e trovo i dati in signals.sqlite-wal:))

Grazie per il vostro aiuto)

 
Zbigniew Mirowski #: Ok, ho capito Allora dove sono i dati? Ho caricato e ricevuto la conferma di signals.sqlite aperto

CS 0 12:43:16.106 SignalsBasa (EURUSD,H1) DB: succesfull
Il documento dopo il caricamento dei dati è ancora di 8 kb e non riesco a caricare i dati e a ricevere
2022.11.30 12:55:49.103 CreateDB (EURUSD,H1) DB: signals.sqlite aperto
2022.11.30 12:55:49.103 CreateDB (EURUSD,H1) 0: 0,0,0,0,0,0.0

Ma hai già dichiarato di aver trovato il file ...

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

Qual è il problema?

Il file"signals.sqlite" contiene struttura e dati in un unico file. Apritelo con MetaEditor e guardate voi stessi i dati - Lavorare con le basi di dati SQL - Guida di MetaEditor

 
Zbigniew Mirowski #: Ok, ho capito e trovato i dati in signals.sqlite-wal:)) Grazie per il vostro aiuto)

Non c'è di che!

 

In MetaEditor, il numero massimo di colonne delle tabelle del database da visualizzare è solo 23.

È possibile rimuovere questa limitazione?

 
Anatoli Kazharski #:

In MetaEditor, il numero massimo di colonne delle tabelle del database da visualizzare è solo 23.

È possibile rimuovere questa limitazione?

Corretto nella beta 3531 con l'aumento delle colonne a 64.
 
A un certo punto da qualche parte c'è stata una risposta sulle virgolette singole e doppie. Non alla lettera, ma vicino al testo - "ha lavorato a lungo con le doppie virgolette". Al momento, tornando a lavorare con le tabelle, il tentativo di scrivere un testo tra doppi apici in una tabella fallisce. Tuttavia, racchiudendo il testo tra apici singoli e poi doppi, la scrittura viene completata con successo. Qual è la regola valida delle virgolette singole e doppie per scrivere il testo in una tabella?
Opzioni e risultati:
successo -
         AddTable_TstDate(i,
                          iTime(Symbol(),PERIOD_CURRENT,i),
                          iHigh(Symbol(),PERIOD_CURRENT,i),
                          iTime(Symbol(),PERIOD_CURRENT,i),
                          iLow(Symbol(),PERIOD_CURRENT,i),
                          IntegerToString(iTime(Symbol(),PERIOD_CURRENT,i)),
                          1121,
                          "'string_no_error'");

non riuscito -

         AddTable_TstDate(i,
                          iTime(Symbol(),PERIOD_CURRENT,i),
                          iHigh(Symbol(),PERIOD_CURRENT,i),
                          iTime(Symbol(),PERIOD_CURRENT,i),
                          iLow(Symbol(),PERIOD_CURRENT,i),
                          IntegerToString(iTime(Symbol(),PERIOD_CURRENT,i)),
                          1121,
                          "string_error");

Vorrei sottolineare che la traduzione di un intero in una stringa non produce un errore quando si scrive in una tabella.

 

Cari sviluppatori, mi spiegate perché non è possibile allegare un database esistente da un file (ATTACH DATABASE)?

Allora come è possibile allegare una base dalla RAM...?

Ho allegato il codice.

Lo script create_databases.mq5 crea un database. Lo script attach_mem_db.mq5 collega il database dalla RAM. Ma lo script attach_other_db.mq5 non riesce a collegare un database esistente.