Delphi IDE and MySQL 32 and 64 bit versions - mysql

I have seen references to this over the web, but can't seem to configure this correctly. I am using Delphi XE8
I am devloping a Delphi based 64-bit MySQL application for MySQL after installing MySQL 64-bit, which works fine.
However, I need to make design-time changes in the IDE, such as viewing tables, mapping db-aware controls to the fields, etc.
I initially installed the 64bit MySQL, not knowing that the 32-bit Delphi IDE would need the 32-bit MySQL for IDE developing/editing/inspecting.
So I don't think I can have both 32 AND 64 bit MySQL installed on the same machine using the same 3306 port (or maybe I can?).
Does this mean if i want to inspect or work in the 32 bit IDE environment that I can't use the 64 bit MySQL? I have already designed a database in the 64 bit MySQL.....
I saw references to adding the paths to the FDDrivers.ini files, but I can't seem to get this going.
Please any thoughts??
Doug

Delph needs neither a 32bit nor a 64bit MySQL server, it just needs the correct client libraries ("drivers"). This imnplies, that you can keep your 64bit MySQL server on port 3306 and just install the 32bit client libraries. This should install quite fine in parallel to your existing 64bit client libs.
Just to make that clear: A 32bit client can talk to a 64bit server and vice versa. Only the server needs a listening port.

Related

Mysql ODBC connector not available in stamps.com datasource

Today, we upgraded stamps.com software to version 17.5. This build requires that ODBC drivers be 64bit. I didn't think that was a problem. System is 64bit, and downloaded the latest MySQL ODBC 64Bit version 8.0.22. ODBC Data Source Administrator loads up, and I can access it. I create the datas ource (tested) but when I try to assign it via Stamps.com I get the error...
"Unable to connect to the selected data source. Check if you need to add a Username and Password"
Odd. Again, I can test connection via ODBC Data Source Administrator. It selects the proper database, etc. The driver is MySQL ODBC 8.0 ANSI Driver (Version 8.00.22.00).
If I try to "Create a new data source" via Stamps.com. Click 'Other/Advanced (SQL,etc)' and click 'Add', I do not see any MySQL drivers anywhere the options.
I've completely uninstalled re-installed 8.0.22 multiple times.
ADDITIONAL INFO
If I don't try to create a new DSN through Stamps.com but rather select an existing one, but click 'configure'. I get the following errors.
"The setup routines for the MySQL ODBC 8.0 ANSI Driver ODBC driver could not be found. Please reinstall the driver."
Followed by..
"---------------------------
Driver's ConfigDSN, ConfigDriver, or ConfigTranslator failed
---------------------------
Errors Found:
The specified DSN contains an architecture mismatch between the Driver and Application"
So it seems like the MySQL ODBC driver is still 32 bit? I clearly installed 64 bit, and the system is 64 bit, so not sure. It's possible the original ODBC driver was 32 bit from a year ago, but like I mentioned, I have removed those .dll via uninstall.
ADDITIONAL INFO 2
I'm wondering if I'm chasing the wrong 32 bit application. Under ODBC Data Source Administrator, in the About tab,
For About the ODBC core components..
Administrator C:\Windows\system32\odbccp32.dll
Control Panel Startup C:\Windows\system32\odbcad32.exe
Cursor Library C:\Windows\system32\odbccr32.dll
Driver Manager C:\Windows\system32\odbc32.dll
Localized Resource DLL C:\Windows\system32\odbcint.dll
Unicode Cursor Library C:\Windows\system32\odbccu32.dll
So it looks like the 'core' for ODBC is 32 bit? Looking into how to update these for 64bit. Hmmm... based on my initial research, those .dll/.exe are 64bit since they're in system32 and not in sysWOW64. Seems counter intuitive?
Any suggestions?
After contacting support, they informed me that ODBC is not supported with 17.5. So not sure - why I needed to upgrade to 64bit, and why it states that my ODBC drivers need to be 64bit, since it's not compatible.
Here is what needs to be done. Download Stamps clean tool:
https://support.stamps.com/outgoing/clean.exe
Then run key tool to remove any registry values:
https://support.stamps.com/outgoing/key.exe
Then finally, you need to install version 17.4
http://support.stamps.com/outgoing/stamps174.exe
Roll back to the 32bit ODBC drivers.
After this fiasco, we've implemented better protocols. Basically secondary machine with Stamps.com running on it and will test future updates there before rolling out to our primary production machine.
We are in the same boat.... after updating to the Stamps.com version 17.5 we have been unable to get our ODBC MySQL server connection working.
We have tried all combinations of older vs new 64 bit MySQL drivers. We have tried installing the 32-bit version of Stamps 17.5. It actually allows us to configure the connection and select the correct tables and columns we want, but when we trigger a lookup we get an error saying 64bit drivers are required.
Same error on 32-bit Stamps.com vs 64-bit Stamps.com.
We are contacting stamps.com support now and I will update this when/if we find anything additional.
Is there a solution then for this? We were actually using for the past 12 years the old ActiveX solution - but you HAD to use MS-Explorer. So we were exploring using stamps.com ORDERS solution with MySQL ODBC. Tried both the 32-bit stamps.com app (with the 32bit ODBC drivers), and the 64-bit stamps.com (with the 64bit ODBC drivers). The 32-bit at least allow you to complete the field mapping - which tells me it was connected to the database to be able to read the schema. But when you go to actually IMPORT anything, you get the "...you'll need to install the latest 64-bit ODBC drivers..." which I have already tried.
If you download and use the 17.4 version (as suggested above), what happens when you MUST upgrade stamps.com (which does happen about once every 2 years when the USPS changes some fundamental stuff).
Any solutions anyone? We really want off our ActiveX/PDK (12 year old) solution.
Just ran into the same issue this week, albeit with the MS SQL drivers. Doesn't matter whether I install the 64bit or 32bit Stamps.com software (when the site will download the 32bit version at all... it doesn't for me at the moment, only 64bit). Either way, I get the message saying I need to install the 64bit ODBC drivers. And clicking "More info" just takes me to the home Help page, not to a related article. The article detailing 64bit ODBC is pretty useless since it just says you need to install the drivers, but you can view it here: https://stamps.custhelp.com/app/answers/detail/a_id/7244/kw/64-bit%20ODBC/related/1
I called support, and they said it's a known issue but that there's no workaround currently.
UPDATE 2/17/2021
I just talked to Tier 2 support, and there's a new version out the resolves the ODBC error. The download page still says 17.7, but it's actually 17.7.1. Installing it resolved the error for me and I am now able to import orders via ODBC. (I installed the 32-bit version at the recommendation of the support tech I spoke with, I have not tried with the 64-bit version.)
Also, the 32-bit download is working again.

Qt5 program unable to connect to mySql on win7 64bit

I am taking over a project done under QT5 by someone else. The purpose of this program is to connect to a mySql server (5.5) running locally (on the same machine) and perform operations. It does that by connecting to the ip Address of the machine it is installed on.
One major bug of this program is that, when it is running on a 32bit platform e.g. win7 32 bit, it connects to the mySql database just fine. But when it is running on a 64bit win7 and the mySql database became a 64bit one too, it consistently fail to connect.
We setup several machines running win 7 64 bit OS to make sure that it wasn't anything accidental and sure enough it wasn't, except one of these machines happens to be my work computer and strange enough the program connects just fine. In other words, the program is connecting to the 64bit build of mySql 5.5 server correctly on a win 7 64 bit platform, something it failed consistently on all other machines.
We also noticed that the connection will not take place properly if we run the program and the mySql server on a freshly installed win7 64 bit OS.
Based on that I suspected that it it is because of all the software that I installed on my machine. But so far installing a copy of Qt5 development suit on a freshly configured machine did not solve that problem, which was quite surprising because it is quite reasonable to assume the Qt5 brings with itself files needed to perform certain operation correctly.
Can anyone please shed some light on how to proceed next? I'm quite helpless here and I don't even know the general direction to move on next.

How do I resolve using 32 bit program with 64 bit database driver?

I'm sure some will say this questions is off topic, but it is truly about programming since I wrote this program and I need to get it working on Windows 10.
I wrote an application in VB.Net and compiled it for "AnyCPU". So it would work in both 32 bit and 64 bit environments. The program communicates with a MySQL database so I load both the 32 bit ODBC drivers and the 64 bit ODBC drivers during the installation. However, one piece of the program uses Crystal Reports for outputting a report. The piece of Crystal I'm using only runs in the 32 bit work space.
The MySQL database installed is 64 bit due to the 64 bit OS.
Everything works harmoniously in Windows_7 (64 bit), but the same configuration does not work in Windows_10 (64 bit). In Windows 10 when the user tries to run the Crystal program to view a report, MySQL throws an error that it can't find the ODBC driver in
"C:\Program Files(x86)\MYSQL\Connector ODBC 5.3\myodbc5a.dll"
Of course the driver is there, but this error is usually due to the wrong bit version of the driver being installed.
The 64 bit version is installed in
"C:\Program Files\MYSQL\Connector ODBC 5.3\myodbc5a.dll"
Is this a Windows 10 issue or something else? How can I get MySQL to use the correct driver location?
I'm not sure if this will help anyone else or not, but basically I went back to ensure that the correct versions of the ODBC drivers were installed in their correct locations. So I uninstalled both versions of the ODBC drivers and tried to reinstall them. In doing this, I saw that the MySQL installer would only let me install one bit version of the driver but not both. My program installs both drivers from the command line in silent mode. But when duplicating my installation method, I noticed that the 32 bit drivers were not being installed correctly when run from the script. But since it installs in silent mode, I never noticed. All of the 32 bit driver dlls were there, including the one shown in the error message, however it was missing 2 dlls that did not get installed properly during the silent installation.
So using the MySQL installer, I tried to install both bit versions of the drivers but as I mentioned above it wouldn't let me. If I installed one version then went back and tried the other version it complained that both versions were already installed. So I had to trick it by installing one version then renaming the folder and then uninstalling it and installing the other version. Once the second version was installed, I went back and renamed the original version's folder back to its original name. That way both bit versions were in thier proper place. However, looking at the installer, it showed that only one version was installed (the one I installed last).
I'm still not sure why my silent installation failed. The error was reminiscent of the error you get when the C++ redistributable needs to be installed, but I tried this and it did not solve the problem. So my immediate problem has been resolved. If I figure out my installation issue, I'll come back and update this answer.

MySQL and Zeoslib: None of the dynamic libraries can be found or not loadable (libmysql.dll) on Windows 8

I am working with MySQL server and Zeoslib with Delphi. My program can remotely connect to the MySQL database but not locally. However, it keeps raising the following error - "None of the dynamic libraries can found or not loadable..."
So, I searched my system for the dll file. It is found within the MySQL library folder and MySQL Workbench folder. As suggested by other websites, I copied the libmysql.dll into my application folder. Still, my program keeps raising this NOT FOUND error on my windows 8 system. Any idea?
Update
64Bit Test machine - 64Bit MySQL server, 32 Bit Application using 32bit Zeolibs component.
32Bit Development machine - 32Bit MySQL server, 32Bit Application using 32Bit Zeoslib component.
By simply copying libmysql.dll from 32Bit System and pasting it into 64bit system within the program folder, the program was able to connect to the database locally (localhost).

How to install Microsoft.ACE.OLEDB.12.0 on Win7 64b with SQLExpress 2008

I was running VSExpress 2010 C# and SQLExpress 2008 on 32b XP. Due to a failure I am now on Win7 64bit. I have reinstalled VSExpress C# (64b). I installed SQLExpress (64b) however my application uses the Microsoft.ACE.OLEDB.12.0 driver to connect to a Office 2007 (32b) database. I could not get the Microsoft.ACE.OLEDB.12.0 to load on SQLExpress (64b).
What do I need to do to get Microsoft.ACE.OLEDB.12.0 working again in SQLExpress? Do I need to run the 32bit version? (I have downloaded it but am having problems getting it to install so I am asking while I uninstall all of my SQLExpress)
Thanks for the help. (I saw a lot of similar issues addressed but could not find a solution for my specific problem)
I think this post has the answer you're looking for -- download 64-bit version of ACE OLE DB driver. However, apparently it requires installing 64-bit version of Office as well.
Otherwise go and install WoW-enabled 32-bit version of SQL Server 2008 Express. Go to this download page and download SQLEXPR_x86_ENU.exe (note: the one without 32 in the file name). It should install on 64-bit system.
I had the same problem and couldn't install the 64 version because I have 32 bit office installed as well (so the 64 bit installed terminated). I changed the build of my program to x86 instead of AnyCPU and the 32 bit ACE worked as given in this Stack Overflow question
If you are trying to use the 32bit version you will probably need to install the 32 bit version of the Microsoft Office Database engine. However if you have 64bit office installed this will show a message saying that 64bit is already installed.
If you install the Microsoft Office Database engine using the "/PASSIVE" command line argument it will install without the prompt, and then you can use the 32 bit ACE.OleDB.12 driver.
Beware in some situations this can cause complications with Office 64bit.
I had to install the Access 2007 Runtime to fix this. Here: https://www.microsoft.com/en-us/download/details.aspx?id=4438