Discussão do artigo "Como acessar o banco de dados MySQL a partir do MQL5 (MQL4)" - página 18

 

Olá, li este documento de forma interessante.

Posso lhe fazer uma pergunta?

Quero saber como confirmar a conexão com o MySQL.

Por favor, me ensine como confirmar a conexão.


Sobre o original em japonês: E na segunda-feira, quando o mercado começa, é encontrado um erro no projeto. Portanto, é altamente recomendável que você confirme a conexão e/ou reconecte-se ao banco de dados em intervalos menores do que o tempo limite especificado na configuração do servidor.

Isso significa que, depois disso, você descobrirá um erro em seu projeto na segunda-feira. Portanto, recomendo que você confirme se a conexão está ativa ou inativa em um intervalo de tempo intervalo de tempo menor do que as configurações de tempo limite do servidor.


Muito obrigado.

 

Olá,...

Por enquanto, escrevi o código da seguinte forma: 1.

Crie uma tabela que tenha um registro de tempo ao confirmar a conexão. 2.

Crie uma tabela que tenha um registro de tempo quando confirmar a conexão. 2.

Se o UpSert falhar, tente sincronizar novamente com o MySQL.

Por favor, informe-me se existem métodos para confirmar a conexão.

Por favor, diga-me se existem alguns métodos para confirmar a conexão.

//+------------------------------------------------------------------+
//| Verificar e reconectar a conexão 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万語ある英和辞典・和英辞典。発音・イディオムも分かる英語辞書。
 
Há alguém aqui que possa escrever um wrapper do MQL5 para o MS SQL e que também esteja interessado em um wrapper para o VOLTDB.
 

Gostaria de perguntar: eu não desconectei a operação do banco de dados, mas o banco de dados está apenas começando a conectar os dados normais ao longo do tempo, não é possível ler diretamente as informações do banco de dados, mas não há nenhuma mensagem de erro

Eu uso o MT4

Arquivos anexados:
20180412.log  2067 kb
 
cikahun:

Oi Alain,

Muito obrigado! Consegui descobrir o que estava errado.

No meu caso, o corretor me fornece o símbolo de moeda com um sinal de £. Eu o excluí e está funcionando.

Mais uma vez, obrigado.

Também estou encontrando esse erro, pois minha corretora também sufixa os símbolos com (£). Alguém sabe por que isso causa um problema e qual é a solução? A cadeia de caracteres SQL funciona bem quando inserida no MYSQL Workbench, mas recebo a mensagem "Query was empty" (A consulta estava vazia) ao executar a consulta por meio dessa biblioteca.
 
Eugeniy Lugovoy:

Obrigado por seu tempo lendo este artigo. Também verifiquei o seu(https://www.mql5.com/pt/code/11114), encontrei essa solução há muito tempo (antes do MT4 build 600) e gostei da ideia de tornar o MQL e o MySQL amigáveis. Mas só há uma coisa que não quero usar: matrizes para recuperar os dados do banco de dados. Por isso, criei essa solução para ser usada com o MT4 e o MT5.

Além disso, esqueci de adicionar o projeto baseado em x64 ao artigo, portanto, você pode baixá-lo aqui mesmo, na discussão. Nada foi alterado nos códigos-fonte, apenas a DLL foi recompilada para x64.

Boa sorte,

Eugênio

Oi Eugeniy Lugovoy, obrigado pelo seu artigo, eu usei o projeto baseado em x32 no meu (janelas de 64 bits com mql5) e tive esse erro:

2018.06.04 17:58:52.879 MySQL-001 (XAUUSD,H1) Não é possível carregar '..\libraries\MQLMySQL.dll' [126]

E agora estou tentando usar seu projeto baseado em x64 que você carregou neste fórum, mas ainda tenho o erro acima.

Tentei executar um dos scripts de duas maneiras,

primeiro, coloquei os arquivos dll neste endereço: ...\MQL5\Libraries

segundo, coloquei-os neste endereço: C:\Windows\SysWOW64

mas nenhum dos dois funcionou.

 

OiEugeniy Lugovoy


Estou recebendo o seguinte erro, não tenho certeza do que está acontecendo!


Os erros ocorrem no arquivo MQLMySQL.mqh

'StrToInteger' - função não definida MQLMySQL.mqh 224 10


'StrToDouble' - função não definida MQLMySQL.mqh 229 10

nas seguintes linhas de código:



int MySqlGetFieldAsInt(int pCursorID, int pField)

{

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

}


double MySqlGetFieldAsDouble(int pCursorID, int pField)

{

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

}


Atenciosamente,



 
MetaQuotes Software Corp.:

Foi publicado o novo artigo Como acessar o banco de dados MySQL a partir da MQL5 (MQL4):

Autor: Eugeniy Lugovoy

Olá , Eugeniy Lugovoy,

Primeiramente, obrigado por dedicar seu tempo à criação desse projeto.

Estou procurando há semanas como importar/atualizar todas as negociações abertas/fechadas de uma conta de negociação em uma tabela MySQL, se possível em tempo real.

Muito obrigado desde já.

Dragos

 

win2008 ou win10 X64

Registro de execução


2018.09.15 20:10:26.742 MySQL-001 (EURUSD,H1) Não é possível carregar 'C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\ 67381DD86A2959850232C0BA725E5966\MQL5\libraries\MQLMySQL.dll' [193]

2018.09.15 20:10:26.742 MySQL-001 (EURUSD,H1) Cannot call 'ReadIni', '... \libraries\MQLMySQL.dll' não está carregado

2018.09.15 20:10:26.742 MySQL-001 (EURUSD,H1) Chamada de função de importação não resolvida



Ajuda de alguém

 
Eugeniy Lugovoy:
Para plataformas x64, use as seguintes bibliotecas (com discussão)

win2018R2 Ou win10 X86


2018.09.15 20:10:26.742 MySQL-001 (EURUSD,H1) Não é possível carregar 'C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\ 67381DD86A2959850232C0BA725E5966\MQL5\libraries\MQLMySQL.dll' [193]
2018.09.15 20:10:26.742 MySQL-001 (EURUSD,H1) Cannot call 'ReadIni', '... \libraries\MQLMySQL.dll' não está carregado
2018.09.15 20:10:26.742 MySQL-001 (EURUSD,H1) Chamada de função de importação não resolvida


????