Bug #68441 Call store procedure by ODBC automatically execute twice
Submitted: 20 Feb 2013 8:57 Modified: 1 Jul 2013 6:57
Reporter: Sidney Liang Email Updates:
Status: Closed Impact on me:
None 
Category:Connector / ODBC Severity:S3 (Non-critical)
Version:5.0 OS:Windows (Win2003)
Assigned to: Bogdan Degtyariov CPU Architecture:Any
Tags: sql server, twice

[20 Feb 2013 8:57] Sidney Liang
Description:
I have a project that MIS system development, the database use MS-SQL 2000 and MySQL 5.0 .

I installed MySQL ODBC driver at the MS-SQL 2000 server, and create a ODBC connection by control panel, then I create a link server connect to the MySQL server by the ODBC.

I can search MySQL data use the link connect under "Microsoft SQL Server Management Studio".

The SQL script like "select * from openquery(MYSQL, 'select * from tablename')"

But when I use the same way to call store procedure of MySQL, I found it will automatically execute twice.

The SQL script similar "select * from openquery(MYSQL, 'CALL sp_test;')"

How to repeat:
As per Description
[21 Feb 2013 16:14] Sveta Smirnova
Thank you for the report.

Please send code, calling stored procedure through ODBC.
[22 Mar 2013 1:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
[22 Mar 2013 7:56] Sidney Liang
I'm sorry reply later.

The SQL code:
select * from openquery(MYSQL, 'CALL sp_test;')

- MYSQL is the link server name
- sp_test is the store procedure name at MySQL
[22 Mar 2013 10:30] Bogdan Degtyariov
What is the exact version (three number like 5.2.4 or 5.1.12) of MySQL Connector/ODBC you are using?

Also, please try executing the stored procedure with the ODBC tracing enabled and send us the resulting trace file.

To do so perform the following steps:

 1. Stop MSSQL server (this is because the trace has to be enabled before
    the linked server starts running ODBC commands)
 2. Run ODBC Data Source Administrator
 3. Open the Tracing tab
 4. Enable "Machine-Wide tracing for all user identities" checkbox
 5. Specify a new file name in the "Log File Path" input. (The trace file
    is going to be considerably big, so I want to avoid reviewing irrelevant
    entries in that log)
 6. Click "Start Tracing Now"
 7. Start MSSQL Server and run the query, which you suspect executes the
    stored procedure twice. Do it only one time.
 8. Click "Stop Tracing" in the ODBC Data Source Administrator and send
    the resulting ODBC trace file to us.

If for any reason something is not going right, please start from step 1 including creating the new log file for each attempt. Do not run "select * from openquery(MYSQL, 'select * from tablename')" more than one time for the same tracing file. It will mix up with the existing records from the previous running attempt in the log and prevent us from seeing the real picture of the problem.

Thanks.
[23 Apr 2013 1:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
[31 May 2013 8:20] Bogdan Degtyariov
Please note that this bug report is waiting on your reply. It will be automatically closed if you do not provide us any feedback.
[1 Jul 2013 1:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
[1 Jul 2013 6:57] Bogdan Degtyariov
Closing the bug after the numerous No-Feedback reminders to the reporter.