Hola Colegas, actualmente me encuentro en la preparatoria y me han dejado una tarea, Crear base de datos Mysql desde C++.
Hize este programa que establece la conexion y crea correctamente la base de datos:
//-------------------------------------------------------------------
//Ejemplo que sirve para crear una base de datos de MYSQL desde C++
//------------------------------------------------------------------- CREAR BASE DE DATOS
#include <iostream>
#include <mysql_connection.h>
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
using namespace sql;
using namespace std;
//Construir: g++ -Wall -o "%e" "%f" -I/usr/include/cppconn -L/usr/lib -lmysqlcppconn
int main(){
sql::Driver *d;//creo el apuntador al driver
sql::Connection *con; //creo el apuntador a la conexion
sql::Statement *stmt; //creo el apuntador a las instrucciones mysql
sql::ResultSet *res; //creo el apuntador a los resultados de las instrucciones mysql
try{
d=get_driver_instance();
con=d->connect("tcp://127.0.0.1:3306","root","");
}catch(sql::SQLException &e)
{
cout << "# ERR: SQLException in: " << __FILE__;
cout << "(" << __FUNCTION__ << ") on line:"<< __LINE__ << endl;
cout << "# ERR: " << e.what();
cout << " (MySQL error code:" << e.getErrorCode();
cout << ", SQLState: " << e.getSQLState() << " )" << endl;
}//fin del try-catch
cout<<"\n Se conecto con exito al Servidor de Mysql\n";
//_____________________Crear una base de datos_____________________
//-----------------------------------------------------------------
try{
stmt = con->createStatement();
res = stmt->executeQuery("CREATE DATABASE BDcxx21");
con->setSchema("BDcxx21");//USE BDcxx21;
}catch(sql::SQLException &e)
{
cout<<"Exito"<<endl;
}//fin del try-catch
delete stmt;
delete res;
delete con;
//delete d;
return 0;
}
Ahora mi duda es como hacer que el usuario pueda capturar el nombre de la base de datos.
Si alguien me puede aconsejar, se lo agradeceria mucho.
Pd: Se que se debe usar algo llamado Prepared Statment, lo lei en el manual pero no entiendo como implementarlo.
Gracias
Hize este programa que establece la conexion y crea correctamente la base de datos:
//-------------------------------------------------------------------
//Ejemplo que sirve para crear una base de datos de MYSQL desde C++
//------------------------------------------------------------------- CREAR BASE DE DATOS
#include <iostream>
#include <mysql_connection.h>
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
using namespace sql;
using namespace std;
//Construir: g++ -Wall -o "%e" "%f" -I/usr/include/cppconn -L/usr/lib -lmysqlcppconn
int main(){
sql::Driver *d;//creo el apuntador al driver
sql::Connection *con; //creo el apuntador a la conexion
sql::Statement *stmt; //creo el apuntador a las instrucciones mysql
sql::ResultSet *res; //creo el apuntador a los resultados de las instrucciones mysql
try{
d=get_driver_instance();
con=d->connect("tcp://127.0.0.1:3306","root","");
}catch(sql::SQLException &e)
{
cout << "# ERR: SQLException in: " << __FILE__;
cout << "(" << __FUNCTION__ << ") on line:"<< __LINE__ << endl;
cout << "# ERR: " << e.what();
cout << " (MySQL error code:" << e.getErrorCode();
cout << ", SQLState: " << e.getSQLState() << " )" << endl;
}//fin del try-catch
cout<<"\n Se conecto con exito al Servidor de Mysql\n";
//_____________________Crear una base de datos_____________________
//-----------------------------------------------------------------
try{
stmt = con->createStatement();
res = stmt->executeQuery("CREATE DATABASE BDcxx21");
con->setSchema("BDcxx21");//USE BDcxx21;
}catch(sql::SQLException &e)
{
cout<<"Exito"<<endl;
}//fin del try-catch
delete stmt;
delete res;
delete con;
//delete d;
return 0;
}
Ahora mi duda es como hacer que el usuario pueda capturar el nombre de la base de datos.
Si alguien me puede aconsejar, se lo agradeceria mucho.
Pd: Se que se debe usar algo llamado Prepared Statment, lo lei en el manual pero no entiendo como implementarlo.
Gracias