Bug #28998 S1000:[MySQL][ODBC 3.51 Driver][mysqld-5.0.37-log]Incorrect table name
Submitted: 8 Jun 2007 23:55 Modified: 28 May 2013 8:29
Reporter: Silvia Ordonez Email Updates:
Status: Closed Impact on me:
None 
Category:Connector / ODBC Severity:S2 (Serious)
Version:3.51.15 OS:Windows
Assigned to: CPU Architecture:Any

[8 Jun 2007 23:55] Silvia Ordonez
Description:
Hello, 
I am trying to connect a mysql db through a progress dataserver using mysql odbc connection.

when i try to load the definition table the next message appears:

S1000:[MySQL][ODBC 3.51 Driver][mysqld-5.0.37-log]Incorrect table name["table name"]

 my progress database is using the code page: iso8859-1 , collation : spanish9, and my mysql db is using : charset: latin1 , collation: latin1_spanish_ci 

i don't know if this feature affect .
Any comments?
Thanks in advance.

How to repeat:

you need a progress 9.1d database, create a dataserver into a a progress database and try to load a mysql db through a mysql DSN .

Suggested fix:

reconfigure the charset and collation, in other words make compatible both databases.
[9 Jun 2007 0:00] Silvia Ordonez
i am sorry, the version is : 3.51.15
[15 Jun 2007 9:57] Tonci Grgin
Hi Silvia and thanks for your report.

Can you elaborate more why do you think it's MyODBC fault? From what I see, you are getting general driver defined error as table requested does not exist:
S1000:[MySQL][ODBC 3.51 Driver][mysqld-5.0.37-log]Incorrect table name["table name"]. How come you make this charset problem?

Did you try using "Initial statement" box in MyODBC config? There you can put "SET NAMES ..." command that suits your needs.
[15 Jun 2007 20:16] Silvia Ordonez
Hi,
I appreciate your comments, i did you told me, but, aghh, without success.

I configure in "Configure data Source Name" , in my odbc connection the connect folder "initial statement", and i put :

SET NAMES "latin1"

"latin1" is the charset set into mysql table editor.
and apply too:
SET NAMES "latin1" COLLATE "latin1_swedish_ci"
is both, charset and collation into mysql table editor.

the problem persists yet.

the situation here is,
I need to connect mysql db into a progress develop environment, i use odbc connection for this, when i try to read the mysql tables appears this message:

"S1000:[MySQL][ODBC 3.51 Driver][mysqld-5.0.37-log]Incorrect table name'.a_ctb'

and the real table name is:  'a_ctba '

any comments.

thanks in advance.
[15 Jun 2007 21:12] Tonci Grgin
Hi Silvia. I am not at all familiar with "progress develop environment". What is that?
As for:
 - "S1000:[MySQL][ODBC 3.51 Driver][mysqld-5.0.37-log]Incorrect table name'.a_ctb'
 - and the real table name is:  'a_ctba '
 - any comments.
it seems to me that database name is not passed correctly. It should have been "your_database.a_ctba". I wonder how your development environment process SQLTables? Here's a test in MS generic ODBC client:

Full Connect(Use Driver)
Env. Attr. SQL_ATTR_ODBC_VERSION set to SQL_OV_ODBC3
Successfully connected to DSN 'myodbc1cln'.
SQLTables:
  In: StatementHandle = 0x008B1978, CatalogName = "test", NameLength1 = 4, SchemaName = "test", NameLength2 = 4, TableName = SQL_NULL_HANDLE, NameLength3 = 0, TableType = SQL_NULL_HANDLE, NameLength4 = 0

Return:	SQL_SUCCESS=0

Get Data All:
"TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "TABLE_TYPE", "REMARKS"
"test", "", "a", "TABLE", ""
"test", "", "aaa", "TABLE", ""
"test", "", "ab", "TABLE", ""
"test", "", "ab1", "TABLE", ""
"test", "", "appointment0", "TABLE", "InnoDB free: 6144 kB"
"test", "", "asd", "TABLE", ""
"test", "", "b", "TABLE", ""
"test", "", "b22340", "TABLE", ""
...
"test", "", "vbug25611_2", "VIEW", "VIEW"
"test", "", "vtest", "TABLE", ""
"test", "", "x_booltest", "TABLE", ""
121 rows fetched from 5 columns.

Now, to try and pin the problem (which is *not* in charsets I think):
 - Please attach ODBC trace (Data Sources (ODBC) / Tracing / Start tracing now)
 - Please attach general query log from MySQL server (add log to server section of my.ini file)
 - What is your actual connect string?
 - Please try to repeat the problem *outside* progress environment, preferably with standalone C test case.
[15 Jul 2007 23: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".
[10 Apr 2008 19:32] Héctor Estigarribia
Hi, i haved the same problem, and i do then next:

in the connection string, first i have (this make the error)

... DATABASE= mibase ;UID= root;...

i only delete the space after My db name like:

... DATABASE= mibase;UID= root;...

and it works!

i hope this help you.

(Sorry for my poor English pleasee!!)
[28 May 2013 8:29] Bogdan Degtyariov
This problem has been fixed in Connector/ODBC 5.1 string parser.
The bug is closed.
[28 Oct 2014 16:52] Patrick Bueker
Hi!
I've also encountered the problem described here when using the Progress Openedge ODBC dataserver. While trying to import the database schema the operation fails with the following message:
S1000 [MySQL][ODBC 5.3(w) Driver][mysqld-5.0.67]Incorrect table name '.table_nam'

The corresponding ODBC trace files show the following lines just before the error:

---------------------------------------------------
prowin32.exe" - fa0-e00	ENTER SQLExecDirect 
		HSTMT               0x02720048
		UCHAR *             0x0018F404 [      -3] "SELECT * FROM `db_name`.`.table_nam` WHERE 1 = 2 \ 0"
		SDWORD                    -3

prowin32.exe" - fa0-e00	EXIT  SQLExecDirect  with return code -1 (SQL_ERROR)
		HSTMT               0x02720048
		UCHAR *             0x0018F404 [      -3] "SELECT * FROM `db_name`.`.table_nam` WHERE 1 = 2 \ 0"
		SDWORD                    -3

		DIAG [S1000] [MySQL][ODBC 5.3(w) Driver][mysqld-5.0.67]Incorrect table name '.table_nam' (1103) 

prowin32.exe" - fa0-e00	ENTER SQLErrorW 
		HENV                0x00000000
		HDBC                0x00000000
		HSTMT               0x02720048
		WCHAR *             0x0018F0E8
		SDWORD *            0x0018F164
		WCHAR *             0x0018ECE8 
		SWORD                      512 
		SWORD *             0x0018F16C

prowin32.exe" - fa0-e00	EXIT  SQLErrorW  with return code 0 (SQL_SUCCESS)
		HENV                0x00000000
		HDBC                0x00000000
		HSTMT               0x02720048
		WCHAR *             0x0018F0E8 [       5] "S1000"
		SDWORD *            0x0018F164 (1103)
		WCHAR *             0x0018ECE8 [      76] "[MySQL][ODBC 5.3(w) Driver][mysqld-5.0.67]Incorrect table name '.table_nam'"
		SWORD                      512 
		SWORD *             0x0018F16C (76)
---------------------------------------------------

'.table_nam' should obviously be 'table_name', so that seems to be one digit off.
I don't know if this is caused by the ODBC driver, but since it was closed as fixed I wanted to report the error, not that it has occured again in the newest version of the ODBC connector.
[29 Oct 2014 17:43] Patrick Bueker
I have now also tested with Version 5.1 of the ODBC driver.
Same problem.

Here the ODBC trace:
----------------------------------------------
prowin32.exe" - 9a8-bc	ENTER SQLExecDirect 
		HSTMT               049A0618
		UCHAR *             0x0012F454 [      -3] "SELECT * FROM `db_name`.`.table_nam` WHERE 1 = 2 \ 0"
		SDWORD                    -3

prowin32.exe" - 9a8-bc	EXIT  SQLExecDirect  with return code -1 (SQL_ERROR)
		HSTMT               049A0618
		UCHAR *             0x0012F454 [      -3] "SELECT * FROM `db_name`.`.table_nam` WHERE 1 = 2 \ 0"
		SDWORD                    -3

		DIAG [S0002] [MySQL][ODBC 5.1 Driver][mysqld-5.6.21-log]Table 'db_name..table_nam' doesn't exist (1146) 

prowin32.exe" - 9a8-bc	ENTER SQLErrorW 
		HENV                00000000
		HDBC                00000000
		HSTMT               049A0618
		WCHAR *             0x0012F138 (NYI) 
 		SDWORD *            0x0012F1B4
		WCHAR *             0x0012ED38 
		SWORD                      512 
		SWORD *             0x0012F1BC

prowin32.exe" - 9a8-bc	EXIT  SQLErrorW  with return code 0 (SQL_SUCCESS)
		HENV                00000000
		HDBC                00000000
		HSTMT               049A0618
		WCHAR *             0x0012F138 (NYI) 
 		SDWORD *            0x0012F1B4 (1146)
		WCHAR *             0x0012ED38 [      77] "[MySQL][ODBC 5.1 Driver][mysqld-5.6.21-log]Table 'db_name..table_nam' doesn't exist"
		SWORD                      512 
		SWORD *             0x0012F1BC (77)
----------------------------------------------

So while slightly different error message it seems to be caused by the same thing. I wonder if it is Openedge or the ODBC driver.