Description:
My years-old Windows 10 professional laptop is being retired and I'm migrating to new hardware running Windows 11 professional. I have an MS Access application that uses MySQL as the backend; it has worked perfectly for a few years. On the Windows 10 system, which has the ODBC connector installed as version 8.0, stored procedures are executed without issue. On the new machine, which is running ODBC connector 8.3 using the same access database and the same code I am unable to run any of the procedures. The following error is returned each time:
"DIAG [37000] [MySQL][ODBC 8.3(w) Driver][mysqld-8.0.27]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{ call spInsertPayeeName(?, ?, ?) }' at line 1 (1064) "
I will attach SQL.log files captured from both machines that are named w10SQL.LOG and w11SQL.LOG respectively. Both logs were created doing nothing but the simple test of establishing the connection via ADODB.Connection, declaring the ADODB.Command and then attempt to call a procedure with two parameters. The same backend server was used for the test.
The only mitigating information that comes to mind is that on the Windows 10 machine, the server is locally installed. The Windows 11 machine attempts to connect to the server (still running on the Windows 10 system) over the LAN. I have updated my connection string on Windows 11 to reflect the later driver version of 8.3 and that I'm no longer using 'localhost'.
I should note that the 8.3 driver is working fine inside of MS Access for linked tables as well as executing SQL Passthrough queries. This issue is limited to using ADODB to execute stored procedures from VBA code.
How to repeat:
To repeat this bug I would assume one needs to run a parameterized stored procedure from a Windows 11 system with ODBC Connector 8.3 and a MySQL backend. Details are in the SQL.LOG files to be provided.