Quantcast
Channel: MySQL Forums - Connector/C++
Viewing all articles
Browse latest Browse all 527

mysql_connection.h causes "invalid covariant return type for..." during compile (no replies)

$
0
0
****EDIT: Nevermind for some reason I had put "mysql_connection.h" in my working directory. The problem we resolved when I removed it.






I am using Eclipse SDK 3.5.1 in Ubuntu 9.10 to invoke gcc 4.4.1 compile my code. I have compiled/installed boost 1.43.0 and mysql-connector-c++ 1.1.0~r791 (from source, not binary). I have linked to the mysqlcppconn library.

The error is coming from the "mysql_connection.h" file but here is the what I am trying to compile:

---code-------------------------------------------------
/*
* mtest.cpp
*
* Created on: Jun 4, 2010
* Author: aekholm
*/

#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <stdexcept>

#include "mysql_connection.h"

#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>

#define EXAMPLE_HOST "localhost"
#define EXAMPLE_USER "root"
#define EXAMPLE_PASS "password"
#define EXAMPLE_DB "world"

using namespace std;

int main(int argc, const char **argv) {

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);

cout << "Connector/C++ tutorial framework..." << endl;
cout << endl;

try {

sql::Driver* driver = get_driver_instance();
std::auto_ptr<sql::Connection> con(driver->connect(url, user, pass));
con->setSchema(database);
std::auto_ptr<sql::Statement> stmt(con->createStatement());

stmt->execute("CALL get_pop(\"Uganda\", @pop)");

std::auto_ptr<sql::ResultSet> res(stmt->executeQuery(
"SELECT @pop AS _reply"));
while (res->next())
cout << "Population of Uganda: " << res->getString("_reply")
<< endl;

stmt->execute("CALL get_pop_continent(\"Asia\", @pop)");

res.reset(stmt->executeQuery("SELECT @pop AS _reply"));
while (res->next())
cout << "Population of Asia: " << res->getString("_reply") << endl;

stmt->execute("CALL get_world_pop(@pop)");

res.reset(stmt->executeQuery("SELECT @pop AS _reply"));
while (res->next())
cout << "Population of World: " << res->getString("_reply") << endl;

} 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;
}
}

--/code-------------------------------------------------





Here is the console output:

---console-----------------------------------------------

**** Build of configuration Debug for project mysql_test ****

make all
Building file: ../mtest.cpp
Invoking: GCC C++ Compiler
g++ -I/usr/include/mysql -I/usr/local/src/boost/ -I/usr/local/src/mysql-connector-c++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"mtest.d" -MT"mtest.d" -o"mtest.o" "../mtest.cpp"
In file included from ../mtest.cpp:13:
../mysql_connection.h:34: error: invalid covariant return type for ‘virtual std::string sql::mysql::MySQL_Savepoint::getSavepointName()’
/usr/local/src/mysql-connector-c++/cppconn/connection.h:53: error: overriding ‘virtual sql::SQLString sql::Savepoint::getSavepointName()’
../mysql_connection.h:67: error: invalid covariant return type for ‘virtual std::string sql::mysql::MySQL_Connection::getCatalog()’
/usr/local/src/mysql-connector-c++/cppconn/connection.h:78: error: overriding ‘virtual sql::SQLString sql::Connection::getCatalog()’
../mysql_connection.h:69: error: invalid covariant return type for ‘virtual std::string sql::mysql::MySQL_Connection::getSchema()’
/usr/local/src/mysql-connector-c++/cppconn/connection.h:80: error: overriding ‘virtual sql::SQLString sql::Connection::getSchema()’
../mysql_connection.h:71: error: invalid covariant return type for ‘virtual std::string sql::mysql::MySQL_Connection::getClientInfo()’
/usr/local/src/mysql-connector-c++/cppconn/connection.h:82: error: overriding ‘virtual sql::SQLString sql::Connection::getClientInfo()’
make: *** [mtest.o] Error 1

--/console-----------------------------------------------





I'm not really sure exactly what is going here. If anyone could shed some light on the problem it would be greatly appreciated. Thanks.

Viewing all articles
Browse latest Browse all 527

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>