Discussão do artigo "Trabalhando com as funções de rede ou MySQL sem DLL: Parte II - Programa para monitorar as alterações nas propriedades do sinal" - página 2
Estou apenas tentando usar a parte MySQL do sistema, mas continuo recebendo o erro "No database selected" (Nenhum banco de dados selecionado), mesmo que eu emita um comando "use `mytable`".
Você tem alguma ideia de por que isso está acontecendo?
No seu caso, `mytable` é o nome da base ou da tabela? USE deve ser seguido do nome do banco de dados, mas não da tabela.
Estou usando o nome do banco de dados na consulta "USE".
Também notei o seguinte ao remover o EA:
2021.08.2001:20:24.248 Sync (EURUSD,H1) 6 undeleted objects left
2021.08.2001:20:24.248 Sync (EURUSD,H1) 1object of type CMySQLTransaction left
2021.08.2001:20:24.248 Sync (EURUSD,H1) 1object of type CMySQLPacket left
2021.08.2001:20:24.248 Sync (EURUSD,H1) 1object of type CData left
2021.08.2001:20:24.248 Sync (EURUSD,H1) 1object of type CMySQLLoginRequest left
2021.08.2001:20:24.248 Sync (EURUSD,H1) 2 objects of type CMySQLPacketReader left
2021.08.2001:20:24.248 Sync (EURUSD,H1) 1024 bytes of leaked memory
Gostaria muito de fazer a biblioteca funcionar, pois quero evitar as DLLs usadas por outras soluções do MySQL.
Erro de transação: MYSQL_ERR_AUTHORIZATION_TIMEOUT
Aqui está
ENUM_TRANSACTION_STATE res = Incoming(buf,rsp_len);
Recebo IN_PROGRESS e ainda não há autorização para o tempo limite. Os dados estão exatamente corretos.
Aqui, o resultado é ...IN_PROGRESS o tempo todo. Onde procurar?
Algo deu errado depois de enviar ao servidor o login e a senha.
Se os dados estivessem incorretos, haveria um erro, não um tempo limite. Portanto, ou o servidor não respondeu, ou respondeu com algo que a biblioteca não entende.
Há alguma maneira de ver a captura de pacotes de rede? Qual é a versão do servidor MySQL?
Algo deu errado depois de enviar ao servidor o login e a senha.
Se os dados estivessem incorretos, teria havido um erro, não um tempo limite. Mas ou o servidor não respondeu, ou respondeu com algo que a biblioteca não entendeu.
Há alguma maneira de ver a captura de pacotes de rede? Qual é a versão do servidor MySQL?
E em uma instância em execução (mysql antigo), isso acontece de tempos em tempos:
2021.09.09 16:57:18.818 prices_to_mysql array out of range in 'MySQLTransaction.mqh' (367,37)
Here on data[ptr]:
ENUM_TRANSACTION_STATE CMySQLTransaction::Incoming(uchar &data[], uint len)
{
int ptr=0; // índice do byte atual no buffer de dados
ENUM_TRANSACTION_STATE result=MYSQL_TRANSACTION_IN_PROGRESS; // resultado do processamento dos dados recebidoswhile(len>0)
{
if(m_packet.total_length==0)
{
//--- Se o número de dados no pacote for desconhecidowhile(m_rcv_len<4 && len>0)
{
m_hdr[m_rcv_len] = data[ptr];
m_rcv_len++;
ptr++;
len--;
}
Estou apenas tentando usar a parte MySQL do sistema, mas continuo recebendo o erro "No database selected" (Nenhum banco de dados selecionado), mesmo que eu emita um comando "use `mytable`".
Você tem alguma ideia de por que isso está acontecendo?
Estou usando o nome do banco de dados na consulta "USE".
Também notei o seguinte ao remover o EA:
Gostaria muito de fazer a biblioteca funcionar, pois quero evitar as DLLs usadas por outras soluções do MySQL.
Não tenho certeza do que isso significa:
Erro de transação: MYSQL_ERR_AUTHORIZATION_TIMEOUT
Aqui
ENUM_TRANSACTION_STATE res = Incoming(buf,rsp_len);
Recebo IN_PROGRESS e ainda não há autorização para o tempo limite. Os dados estão exatamente corretos.
Aqui, o resultado é ...IN_PROGRESS o tempo todo. Onde procurar?
Não sei o que isso significa:
Erro de transação: MYSQL_ERR_AUTHORIZATION_TIMEOUT
Aqui está
ENUM_TRANSACTION_STATE res = Incoming(buf,rsp_len);
Recebo IN_PROGRESS e ainda não há autorização para o tempo limite. Os dados estão exatamente corretos.
Aqui, o resultado é ...IN_PROGRESS o tempo todo. Onde procurar?
Algo deu errado depois de enviar ao servidor o login e a senha.
Se os dados estivessem incorretos, haveria um erro, não um tempo limite. Portanto, ou o servidor não respondeu, ou respondeu com algo que a biblioteca não entende.
Há alguma maneira de ver a captura de pacotes de rede? Qual é a versão do servidor MySQL?
Algo deu errado depois de enviar ao servidor o login e a senha.
Se os dados estivessem incorretos, teria havido um erro, não um tempo limite. Mas ou o servidor não respondeu, ou respondeu com algo que a biblioteca não entendeu.
Há alguma maneira de ver a captura de pacotes de rede? Qual é a versão do servidor MySQL?
Infelizmente, sem isso, será difícil determinar a causa.
A propósito, tudo funcionou no mysql 5.7. Não funciona na versão 8.0.
E em uma instância em execução (mysql antigo), isso acontece de tempos em tempos:
Here on data[ptr]: