MQ4에 MySQL 연결 - 페이지 4

 

함수가 포인터를 반환하면 이것은 일반적인 int(4바이트) 지식입니다.

미래에 우리는 memcpy 또는 strcpy에서 이 int를 사용합니다(이것이 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

따라서 램의 경우 길이를 가져오는 함수가 필요합니다.

이것

mysql_num_fields

mysql_fetch_lengths

 
sergeev :

따라서 램의 경우 길이를 가져오는 함수가 필요합니다.

이것

mysql_num_fields

mysql_fetch_lengths

완전한 이해( 초보 프로그래머 )를 위해서는 정보가 충분하지 않습니다.

 
HIDDEN :

완전한 이해(초보자 프로그래머)를 위해서는 정보가 충분하지 않습니다.


글쎄, 예를 들어? MQL에서 작업할 때 MySQL의 어떤 기능이 문제를 일으키나요?
 
sergeev :

글쎄, 예를 들어? MQL에서 작업할 때 어떤 MySQL 기능이 문제를 일으키나요?

데이터 배열을 반환하면 이것이 완전히 해결되지 않은 유일한 문제라고 생각합니다.

PS MQL4의 데이터베이스에서 데이터 배열을 반환하기 위한 함수의 전체 코드를 게시합니다. 나는 이것이 완료되었음을 이해합니다.

 
HIDDEN :

데이터 배열을 반환하면 이것이 완전히 해결되지 않은 유일한 문제라고 생각합니다.

PS MQL4의 데이터베이스에서 데이터 배열을 반환하기 위한 함수의 전체 코드를 게시합니다. 나는 이것이 완료되었음을 이해합니다.


글쎄요, 정글에 멀리 가지 않도록 mysql_get_client_info의 예를 보여 드리겠습니다.

NULL로 끝나는 문자열(char*)에 대한 포인터를 반환합니다.

우리는 무엇을하고 있습니까?

 #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); // вывели на печать
}

그리고 그게 다야. 마찬가지로 포인터를 반환하는 다른 함수에서 모든 것을 가져옵니다.

추신
MQL4가 아니라 죄송합니다.

 
sergeev :

그리고 그게 다야.

이것은 모두 mql5용이지만 4-ki 구현은 불가능합니까?
 
HIDDEN :
이것은 모두 mql5용이지만 4-ki 구현은 불가능합니까?

비슷할 거라 생각합니다. memcpy 의 유형을 사용하기만 하면 됩니다( uchar 대신 int[] 또는 string& 제공).
시도해 보세요. 결과가 있으면(또는 결과가 없으면) 구독을 취소하세요.
 
sergeev :

비슷할 거라 생각합니다. memcpy의 유형을 사용하기만 하면 됩니다( uchar 대신 int[] 또는 string& 제공).
시도해 보세요. 결과가 있으면(또는 결과가 없으면) 구독을 취소하세요.
꼬이고, 회전하고, 이런 식으로 4-ke에서 나에게 아무 일도 일어나지 않았습니다. 때로는 터미널조차도 완전히 빠져 나옵니다.
 
sergeev :

글쎄요, 정글에 멀리 가지 않도록 mysql_get_client_info의 예를 보여 드리겠습니다.

NULL로 끝나는 문자열(char*)에 대한 포인터를 반환합니다.

우리는 무엇을하고 있습니까?

그리고 그게 다야. 마찬가지로 포인터를 반환하는 다른 함수에서 모든 것을 가져옵니다.

추신
MQL4가 아니라 죄송합니다.


mysql_fetch_row에서 정상적인 결과를 얻었습니까? 그러다 갑자기 근육이 필요했는데 불행히도 터미널을 업데이트한 후 제 방법을 다뤘습니다.
 
Graff :

mysql_fetch_row에서 정상적인 결과를 얻었습니까? 그러다 갑자기 근육이 필요하게 되었는데 불행히도 터미널을 업데이트한 후 제 방법을 다뤘습니다.

예, 모든 것이 완벽하게 작동하지만 지금까지는 MQL5에서만 수행했습니다.

내 게시물의 위의 작업 예