MQ4へのMySQLのアタッチメント - ページ 4

 

関数がポインタを返す場合、それは通常の int (4 バイト) 値です。

この int をさらにmemcpy または strcpy で利用します(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:

十分に理解するための情報が少ない(プログラマ初心者)。


例えば、MySQLのどのような関数がMQLで動作しにくいですか?
 
sergeev:

例えば、MQLで作業する際に、MySQLのどのような関数が問題を引き起こすのでしょうか?

データ配列のリターン、これだけは完全に解決されていない問題だと思います。

P.S. MQL4でデータベースからデータの配列を返す関数の完全なコードを投稿してください。できるようになったのだと理解しています。

 
HIDDEN:

データの配列を返す、これだけが完全に解決されていない問題だと思うんです。

P.S. 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では実装が不可能ということですか?
 
HIDDEN:
これって全部mql5用で、4では実装不可能なんですか?

ただ、memcpyの 際にuchar give int[]やstring&の代わりにtypeで操作する必要があります。 試してみて、結果が出たら(あるいは出なかったら)教えて下さい。
 
sergeev:

ただ、memcpyの際にuchar give int[]やstring&の代わりにtypeで操作する必要があるだけだと思います。
を試してみて、結果が出たら(あるいは出なくても)教えてください。
あれこれと工夫を凝らしたが、4では何一つうまくいかなかった。時々、ターミナルが完全にクラッシュすることもあります。
 
sergeev:

以下は、mysql_get_client_info の例です。

NULL終端文字列(char*)へのポインタを返します。

していることです。

そして、それだけです。アナログ的には、ポインターを返す他の関数からすべてが引き出されます。

追記
MQL4でなくてすみません。


mysql_fetch_rowから正常な結果を得ることができましたか?急に筋肉が必要になり、運良く端末のアップデート 後、私のやり方は破綻してしまいました。
 
Graff:

mysql_fetch_rowから正常な結果を得ることができましたか?急に筋肉が必要になり、端末のアップデート後に思いっきり自分のやり方がダメになりました。

はい、すべて完璧に動作しますが、今のところMQL5に対してしか行っていません

私の投稿の上から見た動作の一例