MySQL Forums
Forum List  »  Connector/C++

Err: MySQL_CONNECTION::setReadOnly() in C++ application
Posted by: Winston Lim
Date: January 21, 2015 09:53PM

Hi, I'm new to Mysql. I tried to compile and run the example source code from Mysql website. The code is listed below:

#include "mysql_connection.h"
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
using namespace std;

#define EXAMPLE_HOST "localhost"
#define EXAMPLE_USER "root"
#define EXAMPLE_PASS "get your own password here"
#define EXAMPLE_DB "information_schema"

int main(int argc, const char **argv)
{
const string url(argc >= 2 ? argv[1] : EXAMPLE_HOST);
const string user(argc >= 3 ? argv[2] : EXAMPLE_USER);
const string pass(argc >= 4 ? argv[3] : EXAMPLE_PASS);
const string database(argc >= 5 ? argv[4] : EXAMPLE_DB);

try {
sql::Driver *driver;
sql::Connection *con;
sql::Statement *stmt;
sql::ResultSet *res;

driver = get_driver_instance(); /* Create a connection */
con = driver->connect("tcp://" + url + ":3306", user, pass);
con->setSchema(database); /* Set the database */

stmt = con->createStatement();
res = stmt->executeQuery("SELECT 'Hello World!' AS _message");

while (res->next())
{
cout << "\t... MySQL replies: ";
cout << res->getString("_message") << endl;
cout << "\t... MySQL says it again: ";
cout << res->getString(1) << endl;
}
delete res;
delete stmt;
delete con;
} catch (sql::SQLException &e) {
/*
The MySQL Connector/C++ throws three different exceptions:

- sql::MethodNotImplementedException (derived from sql::SQLException)
- sql::InvalidArgumentException (derived from sql::SQLException)
- sql::SQLException (derived from std::runtime_error)
*/
cout << "# ERR: SQLException in " << __FILE__;
cout << "(" << __FUNCTION__ << ") on line " << __LINE__ << endl;
/* Use what() (derived from std::runtime_error) to fetch the error message */
cout << "# ERR: " << e.what();
cout << " (MySQL error code: " << e.getErrorCode();
cout << ", SQLState: " << e.getSQLState() << " )" << endl;

return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}

The program compile and run correctly if I remove the line:
con->setSchema(database); /* Set the database */
It doesn't work if I run the application with the line above, with the error:
ERR: MySQL_Connection::setREADONLY()

May I know why?

Options: ReplyQuote


Subject
Views
Written By
Posted
Err: MySQL_CONNECTION::setReadOnly() in C++ application
4917
January 21, 2015 09:53PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.