Discussion of article "How to Access the MySQL Database from MQL5 (MQL4)" - page 13

 
Pavel Kolchin:

win 7 x64 - mt5 x64 latest version (v5 b1455)

I can't get to MySQL, but it's not a pity.

Server: Localhost via UNIX socket

Server type: Percona Server

Server Version: 5.5.35-33.0-log - Percona Server (GPL), Release rel33.0, Revision 611

Protocol Version: 10

User: ***

Server encoding: UTF-8 Unicode (utf8)

works in mql4
The error has been reproduced. I will solve it...
 

Here is the recompiled x64 for MQL5

Pavel try it.

Files:
MQL5_x64.zip  1412 kb
 
Eugeniy Lugovoy:


no more problems with dll's connection

everything works, thanks

 
Pavel Kolchin:

no more problems with dll's connection

everything works, thanks

Always happy to help.

Good luck with your projects.

 
Yuriy Asaulenko:

Thanks, I read it. There's a very good point there by the author of the current article, who came in,..... and ruined everything.)


I myself have encountered more than once the problem of collisions on it. For example, if a trading robot is attached to different charts, but uses one base, and the access is to one general-purpose table (say registration/change of sessions, accounts), then in any case you will get an error like "table locked". And it doesn't matter that all transactions are completed, cursors are closed and the database was opened in shared mode.


The commentator probably did not understand the sqlite settings, which resolve all collisions through compilation for mode with locks or through pragma.

I can say that I have been working for several years on heavy projects with simultaneous read/write multithreading and there are no problems, the main thing is to have straight hands.

 
o_O:

The commenter probably did not understand the sqlite settings, which resolve all collisions through compilation for mode with locks or through pragma.

I can say that I have been working for several years on heavy projects with simultaneous read/write multithreading and there are no problems, the main thing is to have straight hands.

o_O

If anything I can pick up that project for SQLite, write test scripts/EA and if there will be locks again, we can figure it out together (if you don't mind) and provide a software solution to the community.

It might be worth paying attention to this as there are some advantages of a DB (autonomy, SQL, mobility, embeddability, etc).

In fact, I took a ready DLL from SQLite (not the source code) and did not recompile it, but just worked with C++ API.

 
Eugeniy Lugovoy:

o_O

If anything I can pick up that project for SQLite, write test scripts/EA and if there are locks again, we can figure it out together (if you don't mind) and provide a software solution to the community.

It might be worth paying attention to this as there are some advantages of a DB (autonomy, SQL, mobility, embeddability, etc).

In fact, I took a ready-made DLL from SQLite (not the source code) and didn't recompile it, just worked with the C++ API.

It would be really interesting if the "myth" of SQLite locking was confirmed or dispelled. If it weren't for this uncertainty, or solutions to address it, SQlite is a very attractive option for interoperability. It would be interesting to know also something about its performance, for example, compared to the same database with Access. Of course, if someone has a real time and desire to do such work.

There are still questions of connecting the base to third-party software, which can be connected to any database - Access, SQL Server, Oracle and so on. Does SQLite has a driver installed on the computer like OLEDB or at least ODBC? And in the same Access several applications can write-read to the same database asynchronously through different interfaces without any problems. I suspect that this may not work with SQLite.

 
Yuriy Asaulenko:

It would be really interesting if the "myth" of SQLite locking was confirmed or dispelled. If not for this uncertainty, or solutions to eliminate it, SQlite is a very attractive option for interoperability. It would be interesting to know also something about its performance, for example, compared to the same database with Access. Of course, if someone has a real time and desire to do such work.

There are still questions of connecting the base to third-party software, which can be connected to any database - Access, SQL Server, Oracle and so on. Does SQLite has a driver installed on the computer like OLEDB or at least ODBC? And in the same Access several applications can write-read to the same database asynchronously through different interfaces without any problems. I suspect that this may not work with SQLite.

Well OLEDB for SQLite is available, just google it. By the way, an interesting idea to run test scripts about locating through OLEDB to SQLite.... perverted, of course, but we are all perverts here....

And on the native access, I believe that by joint efforts we can achieve a positive result. It's just a matter of time, I won't be able to do it this week... maybe at the weekend I'll make some time...

 
Eugeniy Lugovoy:

Well OLEDB for SQLite is available, just google it. By the way, interesting idea to run test scripts about loc via OLEDB to SQLite.... perverted of course, but we are all perverts here....

And on the native access, I believe that by joint efforts we can achieve a positive result. It's just a matter of time, I won't be able to do it this week... maybe on the weekend I will allocate time...

I have an application that creates a database and writes (not read) into it large amounts of information in many tables. If I can find an OLEDB driver that is installed on the computer and visible through the application settings, SQLite can be easily tested for no hangs. Similarly, you can connect to SQLite the same Access and try to read and modify tables in parallel. Something to measure, of course, will not be possible.

Looked through the internet. At once such OLEDB provider could not find such an OLEDB provider. All more OLEDB DLLs, which can be used only from programming languages, as far as I understand.

 

started popping up all the time, what does that mean?

When I run my code on this line.

if(DB==-1){DB=MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag);}

res = MySqlCursorOpen(DB, "SELECT id, account, symbol FROM `current` WHERE account="+account);