Bom dia pessoal!
Sou iniciante em C++ e há um tempinho atrás desenvolvi uma pequena aplicação com banco de dados usando o conector C++ do MySQL. Mas recentemente tentei fazer uns testes com esse mesmo conector e não obtive o mesmo resultado.
Fiz testes básicos como conexão, inserts e selects, com linkagem tanto estática, quanto dinâmica. Ele compila normalmente, o problema é que na hora da execução, o programa não retorna nenhuma saída, nem sequer uma exceção é lançada. No NetBeans dá erro de execução. No prompt o programa simplesmente para de funcionar.
Pesquisei muito sobre o problema, tanto no Google quanto na documentação oficial, mas sem resultado.
Uma coisa estranha que também notei, é que mesmo linkando a biblioteca estática, durante a execução o programa solicita a biblioteca dinâmica.
Alguém aí já usou essa biblioteca e já se deparou com esse problema? Alguém tem alguma ideia do que esteja causando esse erro?
Já estou tentando resolver esse problema há alguns dias e até agora, nada!
Estou usando:
MySQL 5.6
Connector C++ 1.1
NetBeans 8.0.2
MinGW-w64 (já tentei com Visual C++ 2010)
MSYS
Windows 7 x86
O último teste que fiz foi o seguinte:
#include <iostream> #include <cppconn/prepared_statement.h> #include <cppconn/connection.h> #include <cppconn/statement.h> #include <cppconn/exception.h> #include <cppconn/driver.h> using namespace std; using namespace sql; int main(int argc, char** argv) { try { Driver *driver = get_driver_instance(); Connection *connection = driver->connect("tcp://127.0.0.1:3306", "root", "5432"); connection->setSchema("test"); Statement *stmt = connection->createStatement(); ResultSet *res = stmt->executeQuery("SELECT * FROM `messages`"); while(res->next()) { cout << res->getInt(1) << endl; } delete res; delete stmt; delete connection; } catch(SQLException &e) { cout << e.what() << endl; } return 0; }