По поводу ошибки в строке (367, 37) - странно. Поставить бы там проверку с брейкпойнтом, посмотреть на значения переменных. У меня эта библиотека работает круглосуточно не первый год, запросы каждые 30 секунд (не короткие, с данными). И ни разу не падала. Знать бы, какой запрос её сносит.
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)
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)
実行中のインスタンス(古いmysql)でも、時々このようなことが起こります:
ここで data[ptr]:
今のところ、MySQL 8.0.23にまったく接続できません(エラー1045: "access denied for user ... ")。
解決中です。
(367, 37)行のエラーについて - 奇妙です。そこにブレークポイント・チェックを入れて、変数の値を見るべきです。このライブラリは、最初の1年間は24時間、30秒ごとにリクエスト(短くない、データを含む)している。一度もクラッシュしたことはない。どんなクエリでクラッシュするのかわかればいいのだが。
По поводу ошибки в строке (367, 37) - странно. Поставить бы там проверку с брейкпойнтом, посмотреть на значения переменных. У меня эта библиотека работает круглосуточно не первый год, запросы каждые 30 секунд (не короткие, с данными). И ни разу не падала. Знать бы, какой запрос её сносит.
EAのOnDeInitでクエリを実行するとmySqlがPOINTER_INVALIDを 返しますが、OnInit関数で実行すると同じコードが動作します。
デバッガでコードを実行し、どの関数でエラーが発生したか教えてください。
どうやらエラーはここで発生しているようです。MySQLTransaction.mqh ファイルの"bool CMySQLTransaction::Query(string q)" 関数で、次のようなエラーが発生しています。
2022.02.19 13:22:44.346 'MySQLTransaction.mqh'の範囲外の配列(501,11)
ログの配列サイズについては こちら。一般的に、どこかが正しく変化していないか、m_responsesが間違っているか・・・。
必要であれば、手動で配列をm_responses+1まで拡張するようにした。