As far as I know (correct me if I’m wrong), in ODBC table names are not case-sensitive. On the other hand, a bit of googling has done me no good in finding out whether Catalog and Schema names are case sensitive or not.
Could anyone link to the spec on this?
You should not rely on tables names being case insensitive in ODBC. There are ODBC SQLGetInfo calls you can use which tell you whether they are case sensitive and whether they are uppercased or lowercased. Some databases/drivers maintain case when tables are quoted.
In MS SQL Server you’ll find case insensitive table names but in Oracle you will not:
What Oracle actually does is uppercase unquoted table names:
The same applies to schema and catalog names. Look at SQLGetInfo and you’ll see what the driver can tell you about what it does. Look for SQL_IDENTIFIER_CASE and SQL_IDENTIFIER_QUOTE_CHAR.
http://msdn.microsoft.com/en-us/library/ms711681(v=vs.85).aspx
Take note of the “Because identifiers in SQL-92 are never case-sensitive, a driver that conforms strictly to SQL-92 (any level) will never return the SQL_IC_SENSITIVE option as supported.”.