SubSonic MySQL Version - mysql

SubSonic 2.2 requires MySQL Connector 5.3.2.0. This is not included in the download package, nor is it any longer available from the MySQL download site.
I know I can build SubSonic again from source to get around this, but this is a pain.
Can someone on the SubSonic project please change the "Specific Version" flag on the MySQL assembly reference to "false"?

Change the "Specific Version" Attribute isn't a wise solution.
The linked version should have passed the subsonic unit tests, so it should be ok.
From my own experience I know that mysql sometimes changes the behaviour of the assembly (e.g. a returnvalue 0 or 1 suddenly changes to true/false) that's why we are stuck with an old 5.1.2.2 version (we have no unit test's ;( for our old core)
But if you "tweak" the download link:
http://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-5.2.3.zip/from/http://ftp.gwdg.de/pub/misc/mysql/
you should still be able to download the old connector. If not, you can drop me a line. I still have the msi and the binaries archived.

Related

Delphi can't connect to MySql, claims libmysql.dll isn't in the path when it is

Before anyone marks this a duplicate, please read to the end, as none of the many similar questions helped.
I've just installed Delphi Community Edition and MySql (recommended download from this link) on Windows 11, but am having trouble connecting Delphi to MySql.
I used MySql Workbench to create a new connection, and created a new database with a table and some sample data.
If I start Delphi and create a new Windows VCL project, then choose Tools -> FireDAC Explorer, then try to expand the connection, I get an error "Cannot load vendor library [libmysql.dll, libmariadb or libmysqld.sll]"
I'm assuming that only libmysql.dll is relevant to me, as I don't use Maria, and don't have the other DLL anywhere on my system. I used sigcheck to check that I indeed have a 64-bit version of the DLL.
I have the same error if I use the Data Explorer in Delphi itself.
I read a lot of questions here about this exact error, but all of the ones I've seen suggest one of two things, neither of which apply here...
Add the DLL's location to the PATH environment variable - I have libmysql.dll in the C:\Program Files\MySQL\MySQL Server 8.0\lib folder, and have added that to my PATH environment variable, but it didn't help. I restarted Delphi, but no joy. I even added a TEdit to my form in Delphi, with the following code...
Edit1.Text := GetEnvironmentVariable('PATH');
This confirmed that I had set the environment variable correctly.
Copy the DLL to the project's bin folder. I tried this as well, and it didn't make any difference. However, as I haven't got as far as trying to connect my code to MySql, I didn't expect this to help. I can't even get Delphi itself to connect.
Anyone any ideas? I know there are a lot of questions about this error, but none of them worked for me.
Thanks
Please check the rest of the error message. Sometimes it specifies the bitness of the DLL you need. It's easy to miss that bit and get the wrong version.
I think MySql comes with a 64-bit DLL, but for some reason I never worked out, Delphi seems to need a 32-bit version. I had to search around and download one from a 3rd-party site, which I don't like, but it did work.

Deploy Qt MySql Application

I'm working on Win10 64bit with Qt5.10.1, VS2017, MySql 8.0(64it). Everything is fine in my computer. After I deploy my application on other computers, a error message "Driver not load" pop up.
I have checked many forums including two posts in stackoverflow, [Qt][QMYSQL] Deployed app - Driver not loaded
Deploying qt mysql application
But it doesn't work for me. The following are the dll files in my folder:
qsqlmysql.dll is included in the folder sqldrivers.
All of the platform, software, SDK are 64 bit. can anyone help me? thanks.
Thanks everyone who answer my question. I tried many methods and almost give up. I never used MySQL before and this time I choose the newest MySql 8.0.12. I ignore the procedure and post the solution directly:
Beside libmysql.dll and qsqlmysql.dll, other two *.dll files are also necessary (but no solution I searched refers to them): libeay32.dll and ssleay32.dll, they are located at MySql/bin/. For my computer, they are contained in the system path, while for other computers that do not install MySql, they lack these two. Thus, we need to copy them to the package as well.
For anyone who encounter the same problem, for example using the newest MySql 8.0, you can try this method.

Xamarin studio 5.7 won't run after installation

I installed the Xamarin studio for windows which is a bundle of MonoDevelop and GTK#. I double click and nothing happens.
First thing, this is the log from the IDE.
Second thing, Bug 10558 Is the same problem but unfortunately post dates back to 2013 which about version 4.0. The fix they mentioned which is updated MonoDevelop.Core.dll file did not work.
3rd thing, GTK# bin directory is added to the environment variable, a couple of posts on the internet says that something wrong with "Win32 DLL search path", unfortunately no steps to help.
4th thing, I tried Xamarin universal installer but I press continue and nothing happens.
Update: I have Windows 7 Professional 64-bit with .NET Framework 4.0 installed.
Update 2: It used to work with me before. I don't know what has changed after I formatted my PC few months ago. I found this link on Bug 10558 which might be helpful but I did not understand it. Also found this patch which I didn't know how to apply it.
Any help is appreciated.
The exception you meet, is a typical one when running binaries compiled against .NET 4.5 on a .NET 4.0 only system.
Microsoft did move some key types between assemblies, which led to such exceptions, and there is no way to fix that except upgrading your system to .NET 4.5.
For Xamarin/Mono guys, they should modify the installer to inform end users about this change. They should also update web pages, such as this MonoDevelop page, which still says 4.0 is enough (no, 4.5 is required),
http://www.monodevelop.com/download/

Running another MSI through visual studio installer

I want to install MySQL installer msi with my setup.(MySQL installer has to install silently. I am using batch file in custom action to do this.)
However, the problem is that MySQL's msi cannot be run from within main setup.msi it gives out 1618 error(Another installation needs to be completed.) I would like to know an easy way around this.
Background info: MySQL installer unpacks the manifest which contains MySQLInstallerConsole.exe it is then called through another cmd command to install MySQL.
So all I am looking to do is to execute MySQL installer so that it unpacks the manifest. Later I would call the MySQLInstallerConsole.exe to install MySQL through custom action.
Just to mention even more possibilities- some my colleagues mentioned (VS bootstrapper, burn):
Just start writing a batch or script for calling the two MSIs after each other.
Always a good starting point maybe, if you have no experience with MSI.
Write your own mini setup.exe bootstrapper with 5 lines of code to do the above.
(To be more concrete in "Third party tools":) Buy InstallShield or Advanced Installer or InstallAware, this are the tools with ready GUIs to do such easy bootstrapping.
I would recommend the second out of them. Starting another MSI are only two clicks. Similar with the other. But there are BIG differences between the three, especially InstallAware is special.
! Mentioned "mini bootstrappers" of those tools are not as powerful as Burn or the others followed:
Buy the ready setup suite SetupFactory which can be used as a bootstrapper for MSIs.
Use the InstallShield "Suite" project type, if you buy the Premium Edition of InstallShield. Costs big bucks, but has a friendly user interface. I was successful using it before some years, but I had to work around a handful of bugs as always with IS (but I guess you will discover bugs with most tools. Way it is.)
There (again) Burn would come in handy, you could fix potential bugs or behaviours on your own here ...
Only it could take you more time in the beginning.
... Of course there may be more.
There isn't an easy work around. Windows Installer enforces a 1 installation at a time rule through the use of a mutex. You need to create a bootstrapper / chainer to serialize the installation of your packages. Visual Studio Deployment Projects don't support this. I'd suggest looking at Windows Installer XML (WiX) and it's Burn boostrapper / chainer engine.
The documentation is a bit sparse, but in the Visual Studio world the customized bootstrap is the Bootstrap Manifest Generator. The docs start here:
https://msdn.microsoft.com/en-us/library/ms165429.aspx
and there is an old article here:
https://msdn.microsoft.com/en-us/magazine/cc163899.aspx
but it's not clear how much info and support is available since setup projects were removed from setup projects and then restored.

Problems with Qt Sql drivers

I have the following strange situation here I need some help with:
I am building a Qt application with MySQL access. For this I have:
- a dedicated building machine, using Qt 2010.05 and a MySQL 5.1 just for the libraries, Windows 7 32 bit. This machine creates the install package.
- a dedicated development machine, CentOS 5.5
- two testing machines:
- - an "always" fresh install of Windows 7
- - another Windows 7 machine with a newer Qt on it used for other stuff too.
I have built the previous version of the application sometime in February this year (on the bilding machine), it works nicely and perfectly, loads the MySQL driver (I have put it in the sqldrivers directory as indicated by everyone else). The install package installs, works everywhere (at least on all my Windows machines).
Now, I have built another release of the application, on the same machine. In the install package the only important difference is the executable (and some HTML files, but those are not relevant). Everything else is the same. When I run the NEW executable on the build machine I get ("QSQLITE", "QMYSQL3", "QMYSQL", "QODBC3", "QODBC") as the QSqlDatabase::drivers() output. If I run the NEW exectuable on any other machine I get an empty list of drivers. If I run the OLD package on any machine it works...
The loaded modules by the two processess (old executable, new executable) are basically the same, except is the qtmysql DLL which gets loaded in the old one and not in the new.
Have you ever encountered a situation like this? If yes do you have a feasible solution for it?
Thanks,
f.
Qt will only load plugins which are compatible with the program or version of Qt used. See the Deploying Plugins document.
You could also try using QPluginLoader to manually load a plugin and check what is reported as the QPluginLoader::errorString when it doesn't load (add the error message to your question if you can't fix it still).