Esercizi Eliminazione MySQL C++ Esercizio 1: Eliminazione singola di un record usando MySQL Connector/C++ (metodo sequenziale) Esercizio 2: Eliminazione multipla di record usando MySQL Connector/C++ (metodo sequenziale) Esercizio 3: Eliminazione singola di un record usando MySQL Connector/C++ (OOP) Esercizio 4: Eliminazione multipla di record usando MySQL Connector/C++ (OOP) Esercizio 5: Eliminazione singola di un record usando MySQL C API (metodo sequenziale) Esercizio 6: Eliminazione multipla di record usando MySQL C API (metodo sequenziale) Esercizio 7: Eliminazione singola di un record usando MySQL C API (OOP) Esercizio 8: Eliminazione multipla di record usando MySQL C API (OOP) Esercizio 9: Eliminazione singola di un record usando SOCI (metodo sequenziale) Esercizio 10: Eliminazione multipla di record usando SOCI (OOP) Ecco degli esercizi semplici con soluzione per praticare l’eliminazione singola e multipla di record in MySQL utilizzando C++ sia in modo sequenziale che OOP.
Esercizio 1: Eliminazione singola di un record usando MySQL Connector/C++ (metodo sequenziale)
Stabilire una connessione a MySQL ed eliminare un singolo record.
#include <mysql_driver.h>
#include <mysql_connection.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>
sql :: mysql ::MySQL_Driver * driver = sql :: mysql :: get_mysql_driver_instance ();
std ::unique_ptr < sql ::Connection > con (driver-> connect ( "tcp://127.0.0.1:3306" , "root" , "password" ));
con-> setSchema ( "test_db" );
std ::unique_ptr < sql ::PreparedStatement > pstmt (con-> prepareStatement ( "DELETE FROM test_table WHERE id = ?" ));
int rows = pstmt-> executeUpdate ();
std ::cout << "Eliminati " << rows << " record." << std ::endl;
Esercizio 2: Eliminazione multipla di record usando MySQL Connector/C++ (metodo sequenziale)
Stabilire una connessione a MySQL ed eliminare più record.
#include <mysql_driver.h>
#include <mysql_connection.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>
sql :: mysql ::MySQL_Driver * driver = sql :: mysql :: get_mysql_driver_instance ();
std ::unique_ptr < sql ::Connection > con (driver-> connect ( "tcp://127.0.0.1:3306" , "root" , "password" ));
con-> setSchema ( "test_db" );
std ::unique_ptr < sql ::PreparedStatement > pstmt (con-> prepareStatement ( "DELETE FROM test_table WHERE status = ?" ));
pstmt-> setString ( 1 , "inactive" );
int rows = pstmt-> executeUpdate ();
std ::cout << "Eliminati " << rows << " record." << std ::endl;
Esercizio 3: Eliminazione singola di un record usando MySQL Connector/C++ (OOP)
Creare una classe per gestire la connessione a MySQL ed eliminare un singolo record.
#include <mysql_driver.h>
#include <mysql_connection.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>
sql :: mysql ::MySQL_Driver * driver;
std ::unique_ptr < sql ::Connection > con;
MySQLClient ( const std :: string & host , const std :: string & user , const std :: string & pass , const std :: string & db ) {
driver = sql :: mysql :: get_mysql_driver_instance ();
con. reset (driver-> connect (host, user, pass));
void eliminaRecordSingolo ( const std :: string & table , int id ) {
std ::unique_ptr < sql ::PreparedStatement > pstmt (con-> prepareStatement ( "DELETE FROM " + table + " WHERE id = ?" ));
int rows = pstmt-> executeUpdate ();
std ::cout << "Eliminati " << rows << " record." << std ::endl;
MySQLClient client ( "tcp://127.0.0.1:3306" , "root" , "password" , "test_db" );
client. eliminaRecordSingolo ( "test_table" , 1 );
Esercizio 4: Eliminazione multipla di record usando MySQL Connector/C++ (OOP)
Creare una classe per gestire la connessione a MySQL ed eliminare più record.
#include <mysql_driver.h>
#include <mysql_connection.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>
sql :: mysql ::MySQL_Driver * driver;
std ::unique_ptr < sql ::Connection > con;
MySQLClient ( const std :: string & host , const std :: string & user , const std :: string & pass , const std :: string & db ) {
driver = sql :: mysql :: get_mysql_driver_instance ();
con. reset (driver-> connect (host, user, pass));
void eliminaRecordMultipli ( const std :: string & table , const std :: string & status ) {
std ::unique_ptr < sql ::PreparedStatement > pstmt (con-> prepareStatement ( "DELETE FROM " + table + " WHERE status = ?" ));
pstmt-> setString ( 1 , status);
int rows = pstmt-> executeUpdate ();
std ::cout << "Eliminati " << rows << " record." << std ::endl;
MySQLClient client ( "tcp://127.0.0.1:3306" , "root" , "password" , "test_db" );
client. eliminaRecordMultipli ( "test_table" , "inactive" );
Esercizio 5: Eliminazione singola di un record usando MySQL C API (metodo sequenziale)
Stabilire una connessione a MySQL ed eliminare un singolo record usando MySQL C API.
MYSQL * conn = mysql_init ( nullptr );
std ::cerr << "mysql_init() failed \n " ;
if ( mysql_real_connect (conn, "localhost" , "root" , "password" , "test_db" , 0 , nullptr , 0 ) == nullptr ) {
std ::cerr << "mysql_real_connect() failed \n " ;
const char* query = "DELETE FROM test_table WHERE id = 1" ;
if ( mysql_query (conn, query)) {
std ::cerr << "DELETE failed. Error: " << mysql_error (conn) << std ::endl;
std ::cout << "Record eliminato con successo." << std ::endl;
Esercizio 6: Eliminazione multipla di record usando MySQL C API (metodo sequenziale)
Stabilire una connessione a MySQL ed eliminare più record usando MySQL C API.
MYSQL * conn = mysql_init ( nullptr );
std ::cerr << "mysql_init() failed \n " ;
if ( mysql_real_connect (conn, "localhost" , "root" , "password" , "test_db" , 0 , nullptr , 0 ) == nullptr ) {
std ::cerr << "mysql_real_connect() failed \n " ;
const char* query = "DELETE FROM test_table WHERE status = 'inactive'" ;
if ( mysql_query (conn, query)) {
std ::cerr << "DELETE failed. Error: " << mysql_error (conn) << std ::endl;
std ::cout << "Record eliminati con successo." << std ::endl;
Esercizio 7: Eliminazione singola di un record usando MySQL C API (OOP)
Creare una classe per gestire la connessione a MySQL ed eliminare un singolo record usando MySQL C API.
MySQLClient ( const std :: string &
host , const std :: string & user , const std :: string & pass , const std :: string & db ) {
conn = mysql_init ( nullptr );
throw std :: runtime_error ( "mysql_init() failed" );
if ( mysql_real_connect (conn, host. c_str (), user. c_str (), pass. c_str (), db. c_str (), 0 , nullptr , 0 ) == nullptr ) {
throw std :: runtime_error ( "mysql_real_connect() failed" );
void eliminaRecordSingolo ( const std :: string & table , int id ) {
std ::string query = "DELETE FROM " + table + " WHERE id = " + std :: to_string (id);
if ( mysql_query (conn, query. c_str ())) {
throw std :: runtime_error ( "DELETE failed: " + std :: string ( mysql_error (conn)));
std ::cout << "Record eliminato con successo." << std ::endl;
MySQLClient client ( "localhost" , "root" , "password" , "test_db" );
client. eliminaRecordSingolo ( "test_table" , 1 );
} catch ( const std ::exception & e) {
std ::cerr << e. what () << std ::endl;
Esercizio 8: Eliminazione multipla di record usando MySQL C API (OOP)
Creare una classe per gestire la connessione a MySQL ed eliminare più record usando MySQL C API.
MySQLClient ( const std :: string & host , const std :: string & user , const std :: string & pass , const std :: string & db ) {
conn = mysql_init ( nullptr );
throw std :: runtime_error ( "mysql_init() failed" );
if ( mysql_real_connect (conn, host. c_str (), user. c_str (), pass. c_str (), db. c_str (), 0 , nullptr , 0 ) == nullptr ) {
throw std :: runtime_error ( "mysql_real_connect() failed" );
void eliminaRecordMultipli ( const std :: string & table , const std :: string & status ) {
std ::string query = "DELETE FROM " + table + " WHERE status = '" + status + "'" ;
if ( mysql_query (conn, query. c_str ())) {
throw std :: runtime_error ( "DELETE failed: " + std :: string ( mysql_error (conn)));
std ::cout << "Record eliminati con successo." << std ::endl;
MySQLClient client ( "localhost" , "root" , "password" , "test_db" );
client. eliminaRecordMultipli ( "test_table" , "inactive" );
} catch ( const std ::exception & e) {
std ::cerr << e. what () << std ::endl;
Esercizio 9: Eliminazione singola di un record usando SOCI (metodo sequenziale)
Stabilire una connessione a MySQL ed eliminare un singolo record usando SOCI.
#include <soci/mysql/soci-mysql.h>
soci ::session sql ( soci ::mysql, "db=test_db user=root password='password' host=localhost" );
sql << "DELETE FROM test_table WHERE id = 1" ;
std ::cout << "Record eliminato con successo." << std ::endl;
} catch ( const std ::exception & e) {
std ::cerr << "Errore: " << e. what () << std ::endl;
Esercizio 10: Eliminazione multipla di record usando SOCI (OOP)
Creare una classe per gestire la connessione a MySQL ed eliminare più record usando SOCI.
#include <soci/mysql/soci-mysql.h>
MySQLClient ( const std :: string & connection_string ) : sql ( soci ::mysql, connection_string) {}
void eliminaRecordMultipli ( const std :: string & table , const std :: string & status ) {
sql << "DELETE FROM " << table << " WHERE status = :status" , soci :: use (status);
std ::cout << "Record eliminati con successo." << std ::endl;
MySQLClient client ( "db=test_db user=root password='password' host=localhost" );
client. eliminaRecordMultipli ( "test_table" , "inactive" );
} catch ( const std ::exception & e) {
std ::cerr << "Errore: " << e. what () << std ::endl;