Watch, Follow, &
Connect with Us
Public Report
Report From: Delphi for PHP/Library/Other    [ Add a report in this area ]  
Report #:  51233   Status: Closed
tablename should not be uppercased (mysql.package.php)
Project:  HTML5 Builder Build #:  1.0.2.539
Version:    1.0 Submitted By:   dan kloke
Report Type:  Basic functionality failure Date Reported:  8/29/2007 5:39:43 AM
Severity:    Serious / Highly visible problem Last Updated: 3/20/2012 2:24:39 AM
Platform:    All versions Internal Tracking #:   255664
Resolution: Fixed (Resolution Comments) Resolved in Build: : 2.0.0.965
Duplicate of:  None
Voting and Rating
Overall Rating: No Ratings Yet
0.00 out of 5
Total Votes: None
Description
None
Steps to Reproduce:
Install D4P Update 2.

Add new component package at \vcl\packages\mysql.package.php.

Create new application.

Place a MySQLDatabase, MySQLQuery, Datasource, and DBGrid on form, and connect components as needed.

Specify connection to existing MySQL 5.0 database on Linux server, querying a table whose name contains lowercase characters: "select * from users".

Run application, error is generated:
Application raised an exception class EDatabaseError with message 'Error executing query: SHOW INDEX FROM USERS  where Key_name<>'PRIMARY'  [Table 'shelf.USERS' doesn't exist]'

True enough, "USERS" doesn't exist, "users" does, table names are case sensitive in linux.

Last callstack before exception call is ...vcl\mysql.inc.php Line: 288, which is in function &extractIndexes($table, $primary = FALSE) (line 274). the first line of the function (line 276) is:
            $table = strtoupper($table);  

Commenting out this line allows the app to run successfully.
Workarounds
Comment out line 276 of vcl\mysql.inc.php
Attachment
None
Comments

None

Server Response from: ETNACODE01