salve.... ho creato questo programmino per leggere il contenuto di una tabella... ma alla fine mi da questo output...
" inserisci username :*****
inserisci password :*****
inserisci il nome del database al quale connettersi : prova
connesso al database [prova]
leggere il contenuto della tabella?si
Segmentation fault"
e questo è il codice:
codice:
#include <statement.h>
#include <prepared_statement.h>
#include <exception.h>
#include <cppconn/resultset_metadata.h>
using namespace std;
sql::ResultSet *res;
sql::PreparedStatement *stmt;
sql::ResultSetMetaData *res_md;
int main()
{
MYSQL _mysql;
mysql_init( &_mysql );
string host = "localhost";
string user;
string password;
string db;
bool connected ;
cout<<"inserisci username :";
getline(cin, user);
cout<<endl;
cout<<"inserisci password :";
getline(cin,password);
cout<<endl;
cout<<"inserisci il nome del database al quale connettersi : ";
getline(cin,db);
cout<<endl;
MYSQL *my = mysql_real_connect( &_mysql, host.c_str(), user.c_str(),password.c_str(),db.c_str(),0,0,0);
if (my){ connected = true;
cout<< "connesso al database ["<<db<<"]";
}
else {
connected = false;
string exc = "Errore di connessione a mysql : " + string( mysql_error( &_mysql ) ) + string( "\n" );
cout<< exc;
}
string risposta;
cout<<"leggere il contenuto della tabella?";
getline(cin,risposta);
if(risposta == "si"){
string query = "select * from persone;";
res = stmt-> executeQuery(query);
res_md = res->getMetaData();
cout<<res->rowsCount();
int i;
for (i =1;i < res_md-> getColumnCount();i++)
{
cout<<res_md -> getColumnLabel(i);
}
}
else
{
mysql_close ( & _mysql );
}
return (0);
}