Обсуждение статьи "Работа с СУБД MySQL из MQL5 (MQL4)" - страница 26

 
Ana Fonseca:
в какой папке мне сохранить DLL?
Вот полный пакет обновления DLL: https://github.com/elugovoy/MQLMySQL-Project
включает скомпилированные DLL, расположенные в структуре папок metatrader
 

Здравствуйте Евгений,

не могли бы вы предоставить 64-версию MQLMySQL.dll. При загрузке mt выдает

'C:\Users\ddy\AppData\Roaming\MetaQuotes\Terminal\A82A50F46FD795A059C2382724C7195E\MQL5\libraries\MQLMySQL.dll' is not 64-bit version
Cannot load 'C:\Users\ddy\AppData\Roaming\MetaQuotes\Terminal\A82A50F46FD795A059C2382724C7195E\MQL5\libraries\MQLMySQL.dll' [193]
 
Xiaowei Yan:

Здравствуйте, Евгений,

не могли бы вы предоставить 64-версию MQLMySQL.dll. При загрузке mt выдает

Конечно, вы можете скачать скомпилированные x64 DLL с GitHub: https: //github.com/elugovoy/MQLMySQL-Project/tree/master/MQLMySQL/x64/Release.

Полный репозиторий проекта: https: //github.com/elugovoy/MQLMySQL-Project

С уважением,

Евгений

elugovoy/MQLMySQL-Project
elugovoy/MQLMySQL-Project
  • elugovoy
  • github.com
MQL & DLL libraries for working with MySQL database - elugovoy/MQLMySQL-Project
 

Здравствуйте Евгений,

Я хотел бы узнать, есть ли способ изменить код чтения настроек из файла

// чтение учетных данных базы данных из INI-файла
 Host = ReadIni(INI, "MYSQL", "Host");
 User = ReadIni(INI, "MYSQL", "User");
 Password = ReadIni(INI, "MYSQL", "Password");
 Database = ReadIni(INI, "MYSQL", "Database");
 Port     = (int)StringToInteger(ReadIni(INI, "MYSQL", "Port"));
 Socket   = ReadIni(INI, "MYSQL", "Socket");
 ClientFlag = CLIENT_MULTI_STATEMENTS; 

и использовать это назначение вместо этого

Host = "127.0.0.1";
User = "mt4";
Password = "mt4";
Database ="mt4";
Port     = 3306
Socket   = 0
ClientFlag = CLIENT_MULTI_STATEMENTS; 

возможно ли это, так как я получаю сообщение об ошибке Access violation read 0x000000 MQLMySQL.dll

Есть ли какое-нибудь возможное решение?

 
heere:

Здравствуйте, Евгений,

Я хотел бы узнать, есть ли способ изменить код чтения настроек из файла

и использовать вместо этого следующее задание

возможно ли это, так как я получаю сообщение об ошибке Access violation read 0x000000 MQLMySQL.dll

Какое-нибудь возможное решение?

Host = "127.0.0.1";
User = "mt4";
Password = "mt4";
Database ="mt4";
Port     = 3306;
Socket   = "0"; // эта переменная должна быть строкой, но не int
ClientFlag = CLIENT_MULTI_STATEMENTS; 

может быть, это поможет

 
MARCOS DALCIN ALVES DINIZ:

Он заработал после того, как я обновил версию OpenSSL. Спасибо за внимание.

Привет~

У меня тоже возник вопрос с ошибкой [126]:


Cannot load'C:\Users\programer01\Desktop\MyMT5\MQL5\Libraries\MQLMySQL.dll' [126]

Невозможно вызвать 'cMySqlVersion', 'MQLMySQL.dll' не загружена

неразрешенный вызов функции импорта


MARCOS отметил, что это нормально после обновления версии OpenSSL

Как я могу обновить версию OpenSSL?

Спасибо! ~



PS.

Поскольку я не знаком с этой областью.

Я хочу спросить еще раз

Я вижу, что в вашей папке Libraries есть три файла dll

1.libcrypto-1_1-x64.dll

2.libmysql.dll

3.libssl-1_1-x64.dll


Я установил программное обеспечение MySQL

Эти dll-файлы скопированы из папки ..\Program Files\MySQL?

Если да, то из какой папки они были скопированы?


 
zboo:

Привет~

У меня тоже возник вопрос об ошибке в [126]:


Cannot load'C:\Users\programer01\Desktop\MyMT5\MQL5\Libraries\MQLMySQL.dll' [126]

Невозможно вызвать 'cMySqlVersion', 'MQLMySQL.dll' не загружена

неразрешенный вызов функции импорта


MARCOS отметил, что это нормально после обновления версии OpenSSL

Как я могу обновить версию OpenSSL?

Спасибо! ~



PS.

Поскольку я не знаком с этой областью

я хочу спросить еще раз

Я вижу, что в вашей папке Libraries есть три файла dll

1.libcrypto-1_1-x64.dll

2.libmysql.dll

3.libssl-1_1-x64.dll


Я установил программное обеспечение MySQL

Эти dll-файлы копируются из пути ..\Program Files\MySQL?

Если да, то из какой папки они были скопированы?


Может ли кто-нибудь помочь мне решить такую же ситуацию?

Спасибо~~~~

 
Eugeniy Lugovoy:

может быть, это поможет

Большое спасибо. Это решило проблему.

 

@Eugeniy Lugovoy

Добрый день, Евгений. Большое Вам спасибо за статью. Подскажите, пожалуйста. Столкнулся с такой проблемой: dll работает нормально если запускать советника не на тестере. На тестере выдаёт ошибку: "Cannot load 'C:\Users\...\MQL5\Libraries\MQLMySQL.dll' [126]". От этого не могу протестировать советника на исторических данных.

Контекст проблемы: использую базу данных для подгрузки входных параметров для торговли. Также сохраняю необходимую информацию после торговли. Ошибка только на тестере.


Что пробовал уже делать:

- добавлять #property tester_library "MQLMySQL.dll"

- прописывать путь к dll отдельно в полном объеме

- перепроверял есть ли в папке тот файл, который не подгружается

Ничего не помогает файл в папке лежит, а подгружать не получается. Подскажите, пожалуйста, где еще можно покопать.

 

Пожалуйста, кто-нибудь может подтвердить, что я использую правильную строку подключения.

Я использую "127.0.0.1" для хоста.

Я использую user, pass и database в кавычках (3 отдельных параметра).

Затем я ставлю NULL для сокета и 0 для флага клиента.

(Моя система - Win 10)


При попытке выполнить вставку я получаю ошибку, говорящую об отсутствии соединения с базой данных.