Обсуждение статьи "Работа с СУБД MySQL из MQL5 (MQL4)" - страница 24
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Что на счет поддержки caching_sha2_password ? С этим как то можно бороться или сразу установить mysql_native_password ?
Hy пока native только поддерживается. а реально нужна кому-то поддержка sha2 в этом решении?
То есть сервер базы данных у вас не локально расположен и даже не под vpn?
Привет @EugeniyLugovoy и спасибо за вашу работу!
Есть ли в текущей версии вашей реализации способ получить "LAST_INSERT_ID" после операции INSERT (в таблице с колонкой AUTO_INCREMENT)?
Заранее спасибо и хорошего дня :)Привет @EugeniyLugovoy и спасибо за вашу работу!
Есть ли в текущей версии вашей реализации способ получить "LAST_INSERT_ID" после операции INSERT (в таблице с колонкой AUTO_INCREMENT)?
Заранее спасибо и хорошего дня :)Здравствуйте arsenico42, вы можете попробовать сделать вставку в одном запросе, а затем выбрать LAST_INSERT_ID в другом, но я не могу рекомендовать этот способ, потому что LAST_INSERT_ID - это функция, возвращающая глобальную переменную базы данных, и другая вставка (от другого пользователя, выполняющаяся параллельно) между вашей первоначальной вставкой и выбором LAST_INSERT_ID может повлиять на значение LAST_INSERT_ID.
Это не зависит от библиотеки, это то, как работает mysql/mariadb.
Но я могу посоветовать вам создать функцию на стороне базы данных, которая будет вставлять нужные значения, выбирать LAST_INSERT_ID и возвращать этот ID в качестве значения функции. это может выглядеть так:
А в MQL нужно открыть курсор для запроса:
qry="SELECT import_funds_add('bonuses.csv','c:\\broker imports\\XXX-FX','NEW','No errors') as last_id";затем получить значение из обычного курсора и закрыть курсор.
Таким образом, вместо того чтобы использовать эти команды по отдельности в MQL, можно просто объединить их на стороне DB в функцию.
Это просто пример из живой системы.
Здравствуйте, elugovoy
Замечательная статья и отличные библиотеки.
Я пытаюсь использовать ваши примеры под MT5, но получаю эту ошибку:
2014.12.15 15:44:16.387 MySQL-001 'C:\Users\....\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\libraries\MQLMySQL.dll' is not 64-bit version
Вы запускаете MT5 под 32-битной средой?
Не могли бы вы помочь мне с этим?
Спасибо большое!
Кармин Марроне.
Здравствуйте, Кармине, вы можете скачать x64 версию из исходников на github.
https://github.com/elugovoy/MQLMySQL-Project/tree/master/MQLMySQL/x64/Release
Привет @Eugeniy Lugovoy, прежде всего, спасибо за весь вклад в сообщество.
Я застрял здесь:
"Cannot load 'C:\Users\Admin\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\libraries\MQLMySQL.dll'" [126]
Привет @Eugeniy Lugovoy, прежде всего спасибо за вклад в развитие сообщества.
Я застрял здесь:
"Cannot load 'C:\Users\Admin\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\libraries\MQLMySQL.dll'" [126]
Убедитесь, что файлы MQLMySQL.dll и MQLMySQL.def находятся в папке "C:\Users\Admin\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\libraries\".
Как вы можете видеть, если вы запускаете MQL-программы в режиме Tester, путь к библиотекам будет другим (из-за UAC)
При многократной вставке возникает ошибка.
Ошибка нескольких операторов: У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, для правильного синтаксиса, который следует использовать вблизи ...
При мультивставке возникает ошибка.
Ошибка нескольких операторов: У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, для правильного синтаксиса, который следует использовать вблизи ...
Убедитесь, что при открытии соединения с базой данных установлен флаг клиента с несколькими операторами.