![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я в настоящее время испытываю эту ошибку, может ли кто-нибудь мне помочь?
Я в настоящее время испытываю эту ошибку, может ли кто-нибудь мне помочь?
спасибо за сообщение
исправление в архиве
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Обсуждение статьи "SQL и MQL5: Работаем с базой данных SQLite"
Denis Kanapis, 2017.06.11 15:28
gg всегда выдает 0. Хотя если кверю ввести на прямую в БД, то выдает правильное значение.
И если вместо COUNT поставить какую-нибудь колонку и потом посмотреть размер массива ArraySize(tbl.m_data), то все гуд. Т.е. count не работает. Не знаю, может я что-то не так делаю...
То же самое - COUNT выводит 0, но при запуске скрипта из SQLiteStuido - все считает.
Практическим путем установлено что это происходит на таблицах с ~10000>числомСтрок. Более того, если полученную таблицу tbl, как в указанном примере распечатать (встроенной в код функцией) - столбцы типа INTEGER будут выведены 0, хотя они не 0, само собой. Причем в той же распечатке DOUBLE выводит верно.
С интами что-то, похоже (не успел еще проdebgить).
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Обсуждение статьи "SQL и MQL5: Работаем с базой данных SQLite"
BeforeFlight, 2017.08.31 07:55
То же самое - COUNT выводит 0, но при запуске скрипта из SQLiteStuido - все считает.
Практическим путем установлено что это происходит на таблицах с ~10000>числомСтрок. Более того, если полученную таблицу tbl, как в указанном примере распечатать (встроенной в код функцией) - столбцы типа INTEGER будут выведены 0, хотя они не 0, само собой. Причем в той же распечатке DOUBLE выводит верно.
С интами что-то, похоже (не успел еще проdebgить).
Нашел - в файле "Include\MQH\Ctrl\ByteImg.mqh":
вместо:
очевидно имелось ввиду:
после этого все верно с COUNT, и распечаткой таблиц. По крайней мере мои тесты проходит.
@o_o @Denis Kanapis
Нашел - в файле "Include\MQH\Ctrl\ByteImg.mqh":
вместо:
очевидно имелось ввиду:
после этого все верно с COUNT, и распечаткой таблиц. По крайней мере мои тесты проходит.
@o_o @Denis Kanapis
Как раз хотел про эту ошибку сказать, опередили :). Для значений INT все время отдавалась значение 0.
вы описали баг для СД, ибо __int - это union
union __int { int v; uchar b[4]; };
и разницы между
__int d; d.v=0;
и
__int d={0};
быть не должно
показываемый вами участок кода вообще непонятно как влияет на ваш COUNT
так как фуцнкия ViewInt не записывает, а как раз наоборот - читает число в d.v. И ей пофик на текущее значение d.v.
-----
я добавил в ByteImg предложенную вами правку, чтоб вам было спокойней.
Но вы локализуйте и предоставьте пожалуйста распринтовку этой баги. Так как пока что все выглядит притянутым за уши, но точно не багой либы.
Тестовый скрипт:
+добавил Printов и тестовый __int d0 внутри int ViewInt() для сравнения
OUTPUT:
Я прочитал Ваш, @o_o код, прежде чем писать предыдущие посты и прекрасно видел что там union - потому мне тоже этот баг показался странным, но он очевидно есть.
Правда в "lib'е" (далее по коду - во ViewArray и конструкторах __int) я ошибки так и не нашел. Однако из выделенного в OUTPUT (очевидно странного для union) могу предположить, что "добрый" компилятор не увидел изменения в __int после ViewArray (который оперирует только .b), и вернул из кэша последнее известное значение для .v = 0 (выделено) "неглядя" в сам d.v.
Но здесь у меня только предположения, потому как самого комплиятора я в глаза не видел, а в Вашем коде, повторюсь, я связанных с этим багом ошибок не нашел.
Добрый день,
При запуске скрипта получаю 2 предупреждения:
2017.09.26 07:39:35.569 SQLite3Test 'C:\Users\Roman\AppData\Roaming\MetaQuotes\Terminal\MQL5\Libraries\sqlite3_32.dll' is not 64-bit version
В архиве были обе библиотеки 32 и 64. У меня ОС Win7 64. Не понимаю - что требуется сделать?
При запуске скрипта получаю 2 предупреждения:
2017.09.26 07:39:35.569 SQLite3Test 'C:\Users\Roman\AppData\Roaming\MetaQuotes\Terminal\MQL5\Libraries\sqlite3_32.dll' is not 64-bit version
2017.09.26 07:39:35.602 SQLite3Test (GAZP,H1) Cannot load 'C:\Users\Roman\AppData\Roaming\MetaQuotes\Terminal\MQL5\Libraries\sqlite3_32.dll' [193]
В архиве были обе библиотеки 32 и 64. У меня ОС Win7 64. Не понимаю - что требуется сделать?
ничего
это реакция МТ на импорт, но код продолжает работать.
В приложении исправление по функции PrintTable