記事"ネットワーク関数の適用、または DLL を使用しない MySQL: パートII - シグナル特性の変化を監視するプログラム"についてのディスカッション - ページ 3

 
leonerd #:

実行中のインスタンス(古いmysql)でも、時々このようなことが起こります:

ここで data[ptr]:

今のところ、MySQL 8.0.23にまったく接続できません(エラー1045: "access denied for user ... ")。

解決中です。

(367, 37)行のエラーについて - 奇妙です。そこにブレークポイント・チェックを入れて、変数の値を見るべきです。このライブラリは、最初の1年間は24時間、30秒ごとにリクエスト(短くない、データを含む)している。一度もクラッシュしたことはない。どんなクエリでクラッシュするのかわかればいいのだが。

 
Я пока что вообще не смог подключиться к MySQL 8.0.23 (ошибка 1045: "access denied for user ... ").
GUIから?
 

По поводу ошибки в строке (367, 37) - странно. Поставить бы там проверку с брейкпойнтом, посмотреть на значения переменных. У меня эта библиотека работает круглосуточно не первый год, запросы каждые 30 секунд (не короткие, с данными). И ни разу не падала. Знать бы, какой запрос её сносит.



再現するのは容易ではない。
 

EAのOnDeInitでクエリを実行するとmySqlがPOINTER_INVALIDを 返しますが、OnInit関数で実行すると同じコードが動作します。

 
Vinicius Oliveira POINTER_INVALIDを 返しますが、OnInit関数で実行すると同じコードが動作します。
デバッガでコードを実行し、どの関数でエラーが発生したのか教えてください。
 
Serhii Shevchuk #:
デバッガでコードを実行し、どの関数でエラーが発生したか教えてください。

推定されるエラーの場所


どうやらエラーはここで発生しているようです。MySQLTransaction.mqh ファイルの"bool CMySQLTransaction::Query(string q)" 関数で、次のようなエラーが発生しています。

 
2022.02.19 13:09:10.266      array out of range in 'MySQLTransaction.mqh' (471,11)


 

2022.02.19 13:22:44.346 'MySQLTransaction.mqh'の範囲外の配列(501,11)



 

2022.02.19 14:24:31.882         CMySQLTransaction::PacketDataHandler: m_responses=1
2022.02.19 14:24:31.882         array out of range in 'MySQLTransaction.mqh' (502,11)

 

ログの配列サイズについては こちら。一般的に、どこかが正しく変化していないか、m_responsesが間違っているか・・・。

2022.02.19 14:28:59.455         CMySQLTransaction::PacketDataHandler: m_responses=1
2022.02.19 14:28:59.455         CMySQLTransaction::PacketDataHandler: m_rbuf size=1
2022.02.19 14:28:59.455         array out of range in 'MySQLTransaction.mqh' (503,11)


必要であれば、手動で配列をm_responses+1まで拡張するようにした。