Hello there.
Here´s my environment:
C++ Builder 6 all updated.
Windows XP SP2 all updated.
MySQL Server 5.0.37 running on local windows xp.
MyDac 5.70.0.42 (last build).
The MySQL Server has the option lower_case_table_names setted to 0. This means that mysql differs lower and upper cases. This is the only different from mysql defaults that i have changed on configuration file. Actually, I've made a new installation only to test this issue.
How to reproduce the error:
- Create a new Project on C++ Builder.
- Put a TMyConnection component.
- Put a TMyStoredProc component and link it to the connection.
- Create a database, on that mysql server configured to be case sensitive, with a UPPER CASE name, and create some stored procedure with a UPPER CASE name too inside that database.
- Configure that TMyConnection component to access that database just created.
- Then try, on the StoredProcName property of the TMyStoredProc component, to select the stored procedure created.
- Here, when I try this last step, I get the error "#42000PROCEDURE xxx does not exist."
Remember, this only occurs on mysql server configurated to differenciate upper and lower cases (lower_case_table_names = 0, on windows).
I hope this details helps you in finding some answer.
Ask me if you need any other information.
Thanks.
Ricardo Bueno
SP - Brazil
MyDAC + Case sensitive MySQL Server = Problem
-
eduardosic
- Posts: 387
- Joined: Fri 18 Nov 2005 00:26
- Location: Brazil
Re: MyDAC + Case sensitive MySQL Server = Problem
I made the same test..
if you put in TMyConnection.Database a database name in lowerCase
the TMyConnection connect but the problem hapens.
if you put a upper database name work's fine..
My version is MyDAC 5.55.0.39
Eduardo Silva dos Santos
ES - Brasil.
if you put in TMyConnection.Database a database name in lowerCase
the TMyConnection connect but the problem hapens.
if you put a upper database name work's fine..
My version is MyDAC 5.55.0.39
Eduardo Silva dos Santos
ES - Brasil.
Hello, guys.
Thanks for the answers.
By reading these two replies I have some considerations to say (unfortunately the problem still persists):
- First (answering reply 1): I'm not having a 'Connection Problem'. I'm putting the name of the database in the same case as its on MySQL Server. I'm able to set MyConnection.Connected property to true, and it connects fine (if I put a TMyTable component and link it to the connection, I'm able to see all tables on the TableName drop down list).
- Second (answering reply 2): I repeat: I'm using exactly the same case as its on the database server. Both from database and SP names. And I repeat again: this is not a Connection issue.
- Third (and more important): By reading the replies I've noticed that I forgot to say something: I'm not typing anything. I'm setting both database name and stored proc name by choosing from the respective drop down list of Database and StoredProcName properties. This means that, I have a database located on a server that differ upper and lower cases, the name of this database is in upper case, lets suppose the database name is "FINANCE". As I said on the first question, I have a TMyConnection in a TForm, I put the hostname, port number, user, password properly,I set Connected property to true, OK, connected, I set Connected property to false, I open the MyConnection.Database drop down list and one of the database is FINANCE (in upper case). I choose it. And set Connected to true again. No problem. Connected. Let's go to the TMyStoredProc component, that's already linked to that TMyConnection component, that's already connected. Then I open StoredProcName drop down list, and it lists all stored procedures available (all in upper case too) and, no matter which one I choose, when I select some stored proc I got the error: #42000PROCEDURE 'upper_case_stored_proc_name' does not exist.
This is a minimalist example, but we have here a big application that is running on a customer that unfortunately has a MySQL Server configured to be case sensitive (on a Linux machine). And in a giving form of that application I'm having this problem. This form has a TMyStoredProc component. But when I'm connected in this case sensitive server, when I open the form i got that error. When I debug this form I'm able to see that the error occurs on the constructor. Maybe when the program instantiate all components. I dont have any code that applies to that MyStoredProc component on the constructor. I think the problem happens when the form try to instantiate the TMyStoredProc component.
This error is reproducible if you follow the instructions I gave on the first message.
That's it. I hope I'm giving you enough details.
Thanks.
Ricardo Bueno
SP-Brazil
Thanks for the answers.
By reading these two replies I have some considerations to say (unfortunately the problem still persists):
- First (answering reply 1): I'm not having a 'Connection Problem'. I'm putting the name of the database in the same case as its on MySQL Server. I'm able to set MyConnection.Connected property to true, and it connects fine (if I put a TMyTable component and link it to the connection, I'm able to see all tables on the TableName drop down list).
- Second (answering reply 2): I repeat: I'm using exactly the same case as its on the database server. Both from database and SP names. And I repeat again: this is not a Connection issue.
- Third (and more important): By reading the replies I've noticed that I forgot to say something: I'm not typing anything. I'm setting both database name and stored proc name by choosing from the respective drop down list of Database and StoredProcName properties. This means that, I have a database located on a server that differ upper and lower cases, the name of this database is in upper case, lets suppose the database name is "FINANCE". As I said on the first question, I have a TMyConnection in a TForm, I put the hostname, port number, user, password properly,I set Connected property to true, OK, connected, I set Connected property to false, I open the MyConnection.Database drop down list and one of the database is FINANCE (in upper case). I choose it. And set Connected to true again. No problem. Connected. Let's go to the TMyStoredProc component, that's already linked to that TMyConnection component, that's already connected. Then I open StoredProcName drop down list, and it lists all stored procedures available (all in upper case too) and, no matter which one I choose, when I select some stored proc I got the error: #42000PROCEDURE 'upper_case_stored_proc_name' does not exist.
This is a minimalist example, but we have here a big application that is running on a customer that unfortunately has a MySQL Server configured to be case sensitive (on a Linux machine). And in a giving form of that application I'm having this problem. This form has a TMyStoredProc component. But when I'm connected in this case sensitive server, when I open the form i got that error. When I debug this form I'm able to see that the error occurs on the constructor. Maybe when the program instantiate all components. I dont have any code that applies to that MyStoredProc component on the constructor. I think the problem happens when the form try to instantiate the TMyStoredProc component.
This error is reproducible if you follow the instructions I gave on the first message.
That's it. I hope I'm giving you enough details.
Thanks.
Ricardo Bueno
SP-Brazil
-
eduardosic
- Posts: 387
- Joined: Fri 18 Nov 2005 00:26
- Location: Brazil
This is a real bug, i made a small movie to show this
i make all step's in post - 1
http://www.drdsistemas.com.br/video/mydac/Untitled.html
i make all step's in post - 1
http://www.drdsistemas.com.br/video/mydac/Untitled.html