#include "sql_functions.hpp"
sql_functions
::sql_functions( const QString database
): m_database(database)
{
// Establish the database connection
db.setDatabaseName( m_database );
db.open();
/**
* Create structure :
* - to store data for SQL request
* - to store data for statistics
**/
s_req = new Struct_Request;
s_stats = new Struct_Statistic;
}
sql_functions::~sql_functions()
{
delete s_req;
delete s_stats;
{ // scope the db instance so that removeDatabase does not complain
// about active connections.
connectionname = db.connectionName();
if (db.isOpen())
db.close();
}
}
void sql_functions
::exec( const int request_type,
QString movie_title,
{
/** Clear data field in request structure **/
s_req->data.clear();
/** If no error occured, SQL request is executed **/
if ( db.open() )
{
switch( request_type )
{
case RequestSQL::DISPLAY_ALL :
s_req->data.exec( "SELECT type,titre,dvd_en_pret,bluray_en_pret,dvd_prete_a,bluray_prete_a,est_combo "
"FROM films ORDER BY titre COLLATE NOCASE;" );
break;
case RequestSQL::DISPLAY_DVD :
s_req->data.exec( "SELECT type,titre,dvd_en_pret,bluray_en_pret,dvd_prete_a,bluray_prete_a,est_combo
"FROM films WHERE type IN ('DVD') ORDER BY titre COLLATE NOCASE;" );
break;
case RequestSQL::DISPLAY_BLURAY :
s_req->data.exec( "SELECT type,titre,dvd_en_pret,bluray_en_pret,dvd_prete_a,bluray_prete_a,est_combo "
"FROM films WHERE type IN ('BLURAY') ORDER BY titre COLLATE NOCASE;" );
break;
default:
break;
}
}
}
#include "sql_functions.hpp"
sql_functions::sql_functions( const QString database ):
m_database(database)
{
// Establish the database connection
QSQLDatabase db = QSqlDatabase::addDatabase( "QSQLITE" );
db.setDatabaseName( m_database );
db.open();
/**
* Create structure :
* - to store data for SQL request
* - to store data for statistics
**/
s_req = new Struct_Request;
s_stats = new Struct_Statistic;
}
sql_functions::~sql_functions()
{
delete s_req;
delete s_stats;
QString connectionName;
{ // scope the db instance so that removeDatabase does not complain
// about active connections.
QSqlDatabase db = QSqlDatabase::database();
connectionname = db.connectionName();
if (db.isOpen())
db.close();
}
QSqlDatabase::removeDatabase(connectionName);
}
void sql_functions::exec( const int request_type, QString movie_title,
QString type, QString borrower_name,
QString Id_movie_update )
{
/** Clear data field in request structure **/
s_req->data.clear();
QSqlDatabase db = QSqlDatabase::database();
/** If no error occured, SQL request is executed **/
if ( db.open() )
{
s_req->data = QSqlQuery( db );
switch( request_type )
{
case RequestSQL::DISPLAY_ALL :
s_req->data.exec( "SELECT type,titre,dvd_en_pret,bluray_en_pret,dvd_prete_a,bluray_prete_a,est_combo "
"FROM films ORDER BY titre COLLATE NOCASE;" );
break;
case RequestSQL::DISPLAY_DVD :
s_req->data.exec( "SELECT type,titre,dvd_en_pret,bluray_en_pret,dvd_prete_a,bluray_prete_a,est_combo
"FROM films WHERE type IN ('DVD') ORDER BY titre COLLATE NOCASE;" );
break;
case RequestSQL::DISPLAY_BLURAY :
s_req->data.exec( "SELECT type,titre,dvd_en_pret,bluray_en_pret,dvd_prete_a,bluray_prete_a,est_combo "
"FROM films WHERE type IN ('BLURAY') ORDER BY titre COLLATE NOCASE;" );
break;
default:
break;
}
}
}
To copy to clipboard, switch view to plain text mode
no m_db, no first_call, no constant open/close.
Bookmarks