Discussione sull’articolo "Come accedere al database MySQL da MQL5 (MQL4)" - pagina 18

 

Salve, ho letto questo documento in modo interessante.

Posso farle una domanda?

Vorrei sapere come confermare la connessione con MySQL.

Per favore, insegnami come confermare la connessione.


A proposito del giapponese originale: e il lunedì, quando il mercato inizia, viene riscontrato un errore nel progetto. Pertanto, si consiglia vivamente di confermare la connessione e/o di riconnettersi al database a intervalli inferiori al timeout specificato nella configurazione del server.

Ciò significa che dopo tale data, il lunedì si troverà un errore nel progetto. Pertanto, si consiglia di confermare che la connessione sia viva o morta a un intervallo di tempo inferiore al timeout del server. intervallo di tempo inferiore al timeout impostato dal server.


Grazie.

 

Ciao,...

Ho scritto il codice per il momento come segue. 1. Creare una tabella che abbia un record temporale quando si conferma la connessione.

Creare una tabella che abbia un record di tempo quando si conferma la connessione. 2. Creare una tabella che abbia un record di tempo quando si conferma la connessione.

Creare una tabella che abbia un record di tempo quando si conferma la connessione. 2. Creare una tabella che abbia un record di tempo quando si conferma la connessione.

Se l'UpSert non riesce, provare a risincronizzare con MySQL.

Per favore, ditemi se esistono dei metodi per confermare la connessione.

Per favore, ditemi se esistono dei metodi per confermare la connessione.

//+------------------------------------------------------------------+
//| Controllare e ricollegare la connessione a MySQL &nbsp ; & nbsp; |
//+------------------------------------------------------------------+
bool DBAccess::resync(void)
{
    string  qry = "";

    string  update_time = (string)TimeCurrent();

    qry += "INSERT INTO `" + sync_table + "` (id, update_time) ";
    qry += "VALUES (\'sync\', \'" + update_time + "\') ";
    qry += "ON DUPLICATE KEY UPDATE update_time = \'" + update_time + "\';";
    
    if (MySqlExecute(DBID, qry))    { return true; }
    
    echo("[Try] Database has been disconnected. EA will try resynchronization.");

    bool    sync        = syncDB();
    
    if(!sync)   { return false; }

    return true;
}
for the time beingの意味・使い方 - 英和辞典 Weblio辞書
  • ejje.weblio.jp
for the time beingの意味や使い方 当分の間, さしあたり, 目下. - 約1037万語ある英和辞典・和英辞典。発音・イディオムも分かる英語辞書。
 
C'è qualcuno che può scrivere un wrapper da MQL5 a MS SQL, ed è anche interessato a un wrapper per VOLTDB.
 

Vorrei chiedere, non ho scollegato il funzionamento del database, ma il database è appena iniziato a collegare i dati normali nel tempo, non può direttamente leggere le informazioni del database, ma non vi è alcun messaggio di errore

Io uso MT4

File:
20180412.log  2067 kb
 
cikahun:

Ciao Alain,

Grazie mille! Sono riuscito a capire cosa non andava.

Nel mio caso il broker mi dà il simbolo della valuta con il segno £. L'ho cancellato e funziona.

Grazie ancora.

Anch'io sto riscontrando questo errore perché il mio broker suffissa i simboli con (£). Qualcuno sa perché questo causa un problema e qual è la soluzione? La stringa SQL funziona bene quando viene inserita in MYSQL Workbench, ma ottengo il messaggio "Query was empty" quando eseguo la query attraverso questa libreria.
 
Eugeniy Lugovoy:

Grazie per il tempo dedicato alla lettura di questo articolo. Ho anche controllato il tuo(https://www.mql5.com/it/code/11114), ho trovato una soluzione simile molto tempo fa (prima di MT4 build 600) e mi è piaciuta l'idea di rendere MQL e MySQL amichevoli. Ma una cosa che non voglio usare sono gli array per recuperare i dati dal database. Ecco perché ho costruito questa soluzione da utilizzare con MT4 e MT5.

Inoltre, ho dimenticato di aggiungere il progetto basato su x64 all'articolo, quindi potete scaricarlo proprio qui, nella discussione. Non è stato modificato nulla nei sorgenti, solo la DLL è stata ricompilata per x64.

Buona fortuna,

Eugene

Ciao Eugeniy Lugovoy, grazie per il tuo articolo, ho usato il progetto basato su x32 nel mio (64bit windows con mql5) e ho avuto questo errore:

2018.06.04 17:58:52.879 MySQL-001 (XAUUSD,H1) Impossibile caricare '..\libraries\MQLMySQL.dll' [126]

e ora sto cercando di utilizzare il tuo progetto basato su x64 che hai caricato in questo forum, ma ho ancora l'errore di cui sopra.

Ho provato ad eseguire uno degli script in 2 modi,

prima ho messo i file dll in questo indirizzo : ...\MQL5\Libraries

secondo li ho messi in questo indirizzo : C:\Windows\SysWOW64

ma nessuno dei due ha funzionato.

 

CiaoEugeniy Lugovoy


Sto ricevendo il seguente errore, non sono sicuro di cosa sia successo!


L'errore si verifica nel file MQLMySQL.mqh

'StrToInteger' - funzione non definita MQLMySQL.mqh 224 10


'StrToDouble' - funzione non definita MQLMySQL.mqh 229 10

nelle seguenti righe di codice:



int MySqlGetFieldAsInt(int pCursorID, int pField)

{

return (StrToInteger(MySqlGetRowField(pCursorID, pField));

}


double MySqlGetFieldAsDouble(int pCursorID, int pField)

{

return (StrToDouble(MySqlGetRowField(pCursorID, pField));

}


Cordiali saluti,



 
MetaQuotes Software Corp.:

È stato pubblicato il nuovo articolo Come accedere al database MySQL da MQL5 (MQL4):

Autore: Eugeniy Lugovoy

Ciao Eugeniy Lugovoy,

Innanzitutto, grazie per aver dedicato del tempo a questo progetto.

Ho cercato per settimane come importare/aggiornare tutte le operazioni aperte/chiuse da un conto di trading in una tabella MySQL, se possibile in tempo reale. c'è un modo per farlo usando la tua libreria?

Grazie mille in anticipo.

Dragos

 

win2008 o win10 X64

Eseguire il log


2018.09.15 20:10:26.742 MySQL-001 (EURUSD,H1) Impossibile caricare 'C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\ 67381DD86A2959850232C0BA725E5966\MQL5\libraries\MQLMySQL.dll' [193]

2018.09.15 20:10:26.742 MySQL-001 (EURUSD,H1) Impossibile chiamare 'ReadIni', '... \libraries\MQLMySQL.dll' non è caricato

2018.09.15 20:10:26.742 MySQL-001 (EURUSD,H1) chiamata di funzione di importazione non risolta



Aiuto da parte di qualcuno

 
Eugeniy Lugovoy:
Per le piattaforme x64, utilizzare le seguenti librerie (con discussione)

win2018R2 o win10 X86


2018.09.15 20:10:26.742 MySQL-001 (EURUSD,H1) Impossibile caricare 'C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\ 67381DD86A2959850232C0BA725E5966\MQL5\libraries\MQLMySQL.dll' [193]
2018.09.15 20:10:26.742 MySQL-001 (EURUSD,H1) Impossibile chiamare 'ReadIni', '... \libraries\MQLMySQL.dll' non è caricato
2018.09.15 20:10:26.742 MySQL-001 (EURUSD,H1) chiamata di funzione di importazione non risolta


????