| Bug #92263 | Crash in Connector C++ | ||
|---|---|---|---|
| Submitted: | 31 Aug 2018 19:14 | Modified: | 3 Dec 2019 16:51 |
| Reporter: | Ivo Grzanowski | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | Connector / C++ | Severity: | S2 (Serious) |
| Version: | 8.0.12 | OS: | Windows (7.0) |
| Assigned to: | CPU Architecture: | x86 (Core i7) | |
[3 Sep 2018 13:40]
MySQL Verification Team
Hello Ivo Grzanowski, Thank you for the report. regards, Umesh
[2 Dec 2019 14:38]
Luis Silva
Posted by developer: There is no error... thing is, it throws exception because "use <database>" doesn't produce a result. And it crashes because main() is not catching exceptions. Fixed: Better error description if user tries to get result from a query which doesn't produce one.
[3 Dec 2019 16:51]
Paul DuBois
Posted by developer: Fixed in 8.0.19. If an application tries to obtain a result set from a statement that does not produce one, an exception occurs. For applications that do not catch such exceptions, Connector/C++ now produces a more informative error message to indicate why the exception occurred.

Description: Following problems: 1. MySQL_connect->createStatement(); myqlResult = MySQL_statement->executeQuery("USE <database>"); ---> it crashes without any useful exception. I know, there is a function called " (preparedStatement does it better, fills after all the exception structure...) 2. Why does the C++ interface only support the char* ? (sql::String) Every Apps use multiple languages (wchar_t) today. The database (8.x) supports wchars. How to repeat: MySQL_statement = MySQL_connect->createStatement(); myqlResult = MySQL_statement->executeQuery("USE xyz");//fails without any error (exception e is empty) MySQL_prepdStatement = MySQL_connect->prepareStatement("USE xyz"); if (MySQL_prepdStatement) MySQL_resultSet = MySQL_prepdStatement->executeQuery(); //ends with error and a filles the exception structure Suggested fix: