Page 1 of 1

Embedded MySQL missing

Posted: 08.01.2019, 21:01
by Pitfiend
In the 7.3.0-Alpha, the embedded MySQL driver is not present in the protocols list. Is this a new "feature"?

EDIT:
There are two libraries for MySQL
- libmysql.dll (this one works with protocol MySQL and connects to remote servers)
- libmysqld.dll (this one is not available, it is supposed to connect to local databases)

Re: Embedded MySQL missing

Posted: 09.01.2019, 08:01
by Fr0sT
Have you tried using MySQL protocol with mysqld lib?

Re: Embedded MySQL missing

Posted: 10.01.2019, 01:56
by Pitfiend
Have both for same app. How do I specify which one is to be used? Before I just set the protocol and everything works on wheels... now... its a bit confusing. Having both separated was fine and easy, because I used an .ini file to set parameters and choose the correct .dll

Maybe it seems a good idea to remove multi version, but mixing embedded and remote under the same protocol is breaking old code.

Re: Embedded MySQL missing

Posted: 10.01.2019, 18:48
by marsupilami
Hello Pitfiend,

the assumption was that users of the embedded MySQL version would have to specify the library to use in the LibraryLocation property of TZConnection in most cases. So if you combine the mysql protocol with specifying the path to mysqld.dll you should get a working solution.

Best regards,

Jan

Re: Embedded MySQL missing

Posted: 11.01.2019, 20:09
by Pitfiend
I understand. So, it's breaking code legacy.

Re: Embedded MySQL missing

Posted: 11.01.2019, 22:43
by miab3
Pitfiend wrote:I understand. So, it's breaking code legacy.
And that was the announcement about 7.3.

Michal

Re: Embedded MySQL missing

Posted: 13.01.2019, 16:05
by marsupilami
Pitfiend wrote:I understand. So, it's breaking code legacy.
Unfortunately yes - it does. From time to time we have to make decisions that break backwards compatibility in some cases - like removing redundant protocols or clarifying APIs. We try to document these things in the corresponding article in our SF wiki[2], in the release notes and we try to announce them in release notes for older Zeos releases.

I don't see any advantage on having a different protocol for the embedded mysql server. The API is exactly the same and from a Zeos point of view there is no difference in talking to an embedded server or a remote server. If I understand this[1] article correctly, an embedded server can also be used to connect to remote servers. So why should Zeos provide a different protocol for this use case? You can either rename the library or just use LibraryLocation to point Zeos to the library you want to use.

Best regards,

Jan

[1]: https://mariadb.com/kb/en/library/embedded-mariadb-interface/
[2]: https://sourceforge.net/p/zeoslib/wiki/Things%20to%20know%20about%20the%20Zeos%207.3%20release/