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

 
Ana Fonseca:
em qual pasta eu salvo os a DLL?
Aqui está o pacote completo de atualização da DLL: https://github.com/elugovoy/MQLMySQL-Project
inclui dlls compiladas localizadas na estrutura de pastas do metatrader
 

Olá Eugeniy,

você pode fornecer uma versão 64 do MQLMySQL.dll. Quando carregado, o mt solicita

'C:\Users\ddy\AppData\Roaming\MetaQuotes\Terminal\A82A50F46FD795A059C2382724C7195E\MQL5\libraries\MQLMySQL.dll' is not 64-bit version
Cannot load 'C:\Users\ddy\AppData\Roaming\MetaQuotes\Terminal\A82A50F46FD795A059C2382724C7195E\MQL5\libraries\MQLMySQL.dll' [193]
 
Xiaowei Yan:

Olá , Eugeniy,

você pode fornecer uma versão 64 do MQLMySQL.dll. Quando carregado, o mt solicita

Claro, você pode baixar DLLs x64 compiladas do GitHub: https: //github.com/elugovoy/MQLMySQL-Project/tree/master/MQLMySQL/x64/Release

Repositório completo do projeto: https: //github.com/elugovoy/MQLMySQL-Project

Atenciosamente,

Eugênio

elugovoy/MQLMySQL-Project
elugovoy/MQLMySQL-Project
  • elugovoy
  • github.com
MQL & DLL libraries for working with MySQL database - elugovoy/MQLMySQL-Project
 

Olá Eugeniy,

Gostaria de saber se há uma maneira de alterar o código de leitura das configurações do arquivo

// leitura das credenciais do banco de dados do arquivo INI
 Host = ReadIni(INI, "MYSQL", "Host");
 User = ReadIni(INI, "MYSQL", "User");
 Password = ReadIni(INI, "MYSQL", "Password");
 Database = ReadIni(INI, "MYSQL", "Database");
 Port     = (int)StringToInteger(ReadIni(INI, "MYSQL", "Port"));
 Socket   = ReadIni(INI, "MYSQL", "Socket");
 ClientFlag = CLIENT_MULTI_STATEMENTS; 

e usar essa atribuição em vez disso

Host = "127.0.0.1";
User = "mt4";
Password = "mt4";
Database ="mt4";
Port     = 3306
Socket   = 0
ClientFlag = CLIENT_MULTI_STATEMENTS; 

é possível, pois estou recebendo uma mensagem de erro como Access violation read 0x00000000 MQLMySQL.dll

Alguma solução possível?

 
heere:

Olá , Eugeniy,

Gostaria de saber se existe uma maneira de alterar o código de leitura das configurações do arquivo

e, em vez disso, usar esta atribuição

se isso é possível, pois estou recebendo uma mensagem de erro como Access violation read 0x00000000 MQLMySQL.dll

Alguma solução possível?

Host = "127.0.0.1";
User = "mt4";
Password = "mt4";
Database ="mt4";
Port     = 3306;
Socket   = "0"; // essa variável deve ser string, mas não int
ClientFlag = CLIENT_MULTI_STATEMENTS; 

Talvez isso ajude

 
MARCOS DALCIN ALVES DINIZ:

Funcionou depois que atualizei a versão do OpenSSL. Obrigado pela atenção.

Olá!

Também tive a pergunta de erro [126]:


Cannot load'C:\Users\programer01\Desktop\MyMT5\MQL5\Libraries\MQLMySQL.dll' [126]

Não é possível chamar'cMySqlVersion','MQLMySQL.dll' não está carregado

Chamada de função de importação não resolvida


MARCOS mencionou que isso é normal após a atualização da versão do OpenSSL

Como posso atualizar a versão do OpenSSL?

Obrigado! ~



PS.

Como não estou familiarizado com esse campo

gostaria de perguntar novamente

Vejo que há três arquivos dll em sua pasta Libraries

1.libcrypto-1_1-x64.dll

2.libmysql.dll

3.libssl-1_1-x64.dll


Eu instalei o software MySQL

Esses arquivos dll foram copiados do caminho em ..\Program Files\MySQL?

Em caso afirmativo, de qual pasta foram copiados?


 
zboo:

Olá!

Também tive a pergunta de erro de [126]:


Cannot load'C:\Users\programer01\Desktop\MyMT5\MQL5\Libraries\MQLMySQL.dll' [126]

Cannot call'cMySqlVersion','MQLMySQL.dll' is not loaded

Chamada de função de importação não resolvida


MARCOS mencionou que isso é normal após a atualização da versão do OpenSSL

Como posso atualizar a versão do OpenSSL?

Obrigado! ~



PS.

Como não estou familiarizado com esse campo

gostaria de perguntar novamente

Vejo que há três arquivos dll em sua pasta Libraries

1.libcrypto-1_1-x64.dll

2.libmysql.dll

3.libssl-1_1-x64.dll


Instalei o software MySQL

Esses arquivos dll são copiados do caminho em ..\Program Files\MySQL?

Em caso afirmativo, de qual pasta foram copiados?


Alguém pode me ajudar a resolver a mesma situação?

Obrigado~~~~

 
Eugeniy Lugovoy:

Talvez isso ajude

Muito obrigado. O problema foi resolvido.

 

@Eugeniy Lugovoy

Boa tarde, Eugeniy. Muito obrigado pelo artigo. Poderia me aconselhar? Encontrei o seguinte problema: a dll funciona bem se eu executar o EA não no testador. No testador, ele apresenta o seguinte erro: "Cannot load 'C:\Users\...\MQL5\Libraries\MQLMySQL.dll' [126]". Isso torna impossível testar o EA em dados históricos.

Contexto do problema: uso o banco de dados para carregar parâmetros de entrada para negociação. Também salvo as informações necessárias após a negociação. O erro ocorre somente no testador.


O que eu tentei fazer:

- adicionar #property tester_library "MQLMySQL.dll"

- escrever o caminho para a dll separadamente em sua totalidade

- verifiquei duas vezes se o arquivo que não está carregado está na pasta.

Nada ajuda, o arquivo está na pasta, mas não consigo carregá-lo. Por favor, diga-me onde mais posso procurar.

 

Alguém pode confirmar se estou usando a string de conexão correta?

Estou usando "127.0.0.1" para o host

Estou usando o usuário, a senha e o banco de dados entre aspas (3 parâmetros separados)

Em seguida, estou colocando NULL para o soquete e 0 para o sinalizador do cliente.

(Meu sistema é o Win 10)


Recebo um erro dizendo que não há conexão com o banco de dados quando tento executar uma inserção