Anexar o MySQL ao MQ4 - página 4

 

se a função retorna um ponteiro, é um valor int (4 bytes) regular

usaremos esta int em memcpy ou strcpy (se soubermos que se trata de uma corda com terminação NULL)

#import "msvcrt.dll"
        int memcpy(uchar &Destination[], uchar &Source[], int Length);
        int memcpy(uchar &Destination[], int Source, int Length);
        int memcpy(int Destination, uchar &Source[], int Length);
#import

Portanto, para nossos carneiros, precisamos de funções para obter comprimentos Comprimentos.

é

mysql_num_fields

mysql_fetch_lengths

 
sergeev:

Portanto, para nossos carneiros, precisaremos de funções para obter Comprimentos.

é

mysql_num_fields

mysql_fetch_lengths

Não há muitas informações para uma compreensão completa(para programadores iniciantes).

 
HIDDEN:

Não há muita informação para entender completamente (programadores iniciantes).


por exemplo? com que função do MySQL é difícil trabalhar na MQL ?
 
sergeev:

por exemplo? qual função do MySQL causa dificuldades quando se trabalha com MQL ?

Retorno da matriz de dados, acho que este é o único problema que ainda não foi totalmente resolvido.

P.S. Afixe o código completo da função para retornar o conjunto de dados do banco de dados na MQL4. Entendo que era possível fazer.

 
HIDDEN:

Retorno da matriz de dados, acho que este é o único problema que ainda não foi totalmente resolvido.

P.S. Afixe o código completo da função para retornar o conjunto de dados do banco de dados na MQL4. Entendo que foi possível fazer isso.


aqui você vai, para não ir muito longe na selva, vou mostrar pelo exemplo mysql_get_client_info

devolve um ponteiro a um fio com terminação NULL (char*)

que estamos fazendo:

#import "libmysql.dll"
    int mysql_get_client_info(); // функция вернула char*
#import "msvcrt.dll"
    int strcpy(uchar &strDestination[], int strSource); // копируем NULL-строку из source в байтовый массив 
#import

void OnStart()
{
    uchar byte[100]; int ptr;
    ptr=mysql_get_client_info(); // получили указатель на строку
    strcpy(byte, ptr); // скопировали его в массив
    string st=CharArrayToString(byte); Print("client_info="+st); // вывели на печать
}

E é isso aí. ANALOGICAMENTE tudo é puxado de outras funções que retornam ponteiros.

PS
Lamento que não seja a MQL4.

 
sergeev:

Isso é tudo.

Então tudo isto é para mql5, e a implementação é impossível para 4?
 
HIDDEN:
Então, tudo isso é para mql5, e a implementação é impossível para 4?

Acho que será semelhante. apenas é necessário manipular com tipo em memcpy (em vez de uchar dar int[] ou string& ).
tente, se você obtiver resultados (ou não), me avise.
 
sergeev:

Acho que será o mesmo. só é preciso manipular com o tipo em memória (ao invés de uchar dar int[] ou string& ).
tente, e se você obtiver resultados (ou não), me avise.
Eu torci e virei desta maneira e isso, nada funcionou para mim no 4. Às vezes até mesmo o terminal cai completamente.
 
sergeev:

Aqui está um exemplo de mysql_get_client_info

devolve um ponteiro a um fio com terminação NULL (char*)

que estamos fazendo:

E é isso aí. ANALOGICAMENTE tudo é puxado de outras funções que retornam ponteiros.

PS
Lamento que não seja a MQL4.


Você foi capaz de obter resultados normais com o mysql_fetch_row? De repente, precisei de um músculo e, por sorte, após uma atualização terminal, meu método faliu.
 
Graff:

Você conseguiu obter resultados normais com o mysql_fetch_row? De repente, precisei de um músculo e o máximo possível após as atualizações do terminal, meu método foi estragado.

Sim, tudo funciona perfeitamente, mas até agora só o fiz para a MQL5

Um exemplo de como funciona de cima no meu posto

Razão: