Discussione sull’articolo "Come accedere al database MySQL da MQL5 (MQL4)" - pagina 24
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Che ne è del supporto di caching_sha2_password? C'è un modo per gestirlo o basta installare mysql_native_password?
Hy finora è supportato solo il nativo. qualcuno ha davvero bisogno del supporto sha2 in questa soluzione?
Quindi il vostro server di database non è localizzato localmente o addirittura sotto vpn?
Ciao @EugeniyLugovoy e grazie per il tuo lavoro!
Nella versione attuale della tua implementazione, c'è un modo per recuperare il "LAST_INSERT_ID" dopo un'operazione di INSERT (in una tabella con una colonna AUTO_INCREMENT)?
Grazie in anticipo e buona giornata :)Ciao @EugeniyLugovoy e grazie per il tuo lavoro!
Nella versione attuale della tua implementazione, c'è un modo per recuperare il "LAST_INSERT_ID" dopo un'operazione di INSERT (in una tabella con una colonna AUTO_INCREMENT)?
Grazie in anticipo e buona giornata :)Ciao arsenico42, puoi provare a fare un inserimento in una query e poi selezionare LAST_INSERT_ID in un'altra, ma non posso consigliarti questo modo, perché LAST_INSERT_ID è una funzione che restituisce una variabile globale del database, e un altro inserimento (da un altro utente, in esecuzione simultanea) tra l'inserimento originale e la selezione di LAST_INSERT_ID può influenzare il valore di LAST_INSERT_ID.
Questo non dipende dalla libreria, ma dal funzionamento di mysql/mariadb.
Tuttavia, posso consigliarvi di creare una funzione sul lato del database per inserire i valori richiesti, selezionare LAST_INSERT_ID e restituire questo ID come valore della funzione:
In MQL è necessario aprire un cursore per la query:
qry="SELECT import_funds_add('bonuses.csv','c:\\broker imports\\XXX-FX','NEW','No errors') as last_id";quindi ottenere il valore dal solito cursore e chiudere il cursore.
Quindi, invece di utilizzare questi comandi separatamente in MQL, è possibile combinarli sul lato DB in una funzione.
È solo un esempio dal sistema in funzione.
Ciao elugovoy
Articolo fantastico e grandi librerie.
Sto cercando di utilizzare i tuoi esempi con MT5 ma ricevo questo errore:
2014.12.15:44:16.387 MySQL-001 'C:\Users\....\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\libraries\MQLMySQL.dll' non è la versione a 64 bit.
Stai eseguendo MT5 con un'applicazione a 32 bit?
Potresti aiutarmi per favore?
Grazie mille!
Carmine Marrone.
Ciao Carmine, puoi scaricare la versione x64 dai sorgenti su github.
https://github.com/elugovoy/MQLMySQL-Project/tree/master/MQLMySQL/x64/Release
Ciao @Eugeniy Lugovoy, prima di tutto grazie per il contributo alla comunità.
Sono bloccato qui:
"Cannot load 'C:\Users\Admin\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\libraries\MQLMySQL.dll'" [126]
Ehi @Eugeniy Lugovoy, prima di tutto grazie per il contributo alla comunità.
Sono bloccato qui:
"Cannot load 'C:\Users\Admin\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\libraries\MQLMySQL.dll'" [126]
Assicuratevi che i file MQLMySQL.dll e MQLMySQL.def si trovino nella cartella "C:\Users\Admin\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\libraries\".
Come si può vedere, se si eseguono programmi MQL in modalità Tester, il percorso delle librerie sarà diverso (a causa di UAC)
L'inserimento multiplo ottiene un errore.
Errore di dichiarazioni multiple: Si è verificato un errore nella sintassi SQL; controllate il manuale corrispondente alla versione del vostro server MySQL per conoscere la sintassi corretta da utilizzare ...
multi-inserimento riceve un errore.
Errore di dichiarazioni multiple: Si è verificato un errore nella sintassi SQL; controllate il manuale corrispondente alla versione del vostro server MySQL per conoscere la sintassi corretta da utilizzare ...
Assicurarsi di aver impostato il flag client multi statement all'apertura della connessione al database.