mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
Transaction deleteTrainee
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
#include <QtSql>
|
||||
#include <QSqlDatabase>
|
||||
#include <QSqlDriver>
|
||||
#include <QMessageBox>
|
||||
|
||||
DataBaseLMS::DataBaseLMS():
|
||||
@@ -20,14 +21,16 @@ bool DataBaseLMS::createConnection()
|
||||
{
|
||||
mtxAccess.lock();
|
||||
|
||||
db = new QSqlDatabase(QSqlDatabase::addDatabase(dbType));
|
||||
db = new QSqlDatabase(QSqlDatabase::addDatabase(dbType, connectionName));
|
||||
db->setDatabaseName(dbName);
|
||||
db->setUserName(dbUserName);
|
||||
db->setPassword(dbPassword);
|
||||
db->setPort(5432);
|
||||
db->setHostName("192.168.100.87");
|
||||
|
||||
if(!db->open())
|
||||
bool res = db->open();
|
||||
|
||||
if(!res)
|
||||
{
|
||||
mtxAccess.unlock();
|
||||
deleteConnection();
|
||||
@@ -35,6 +38,11 @@ bool DataBaseLMS::createConnection()
|
||||
}
|
||||
else
|
||||
{
|
||||
bool flHas = db->driver()->hasFeature(QSqlDriver::Transactions);
|
||||
|
||||
//bool resBool = QSqlDatabase::database(connectionName).transaction();
|
||||
//resBool = QSqlDatabase::database(connectionName).commit();
|
||||
|
||||
mtxAccess.unlock();
|
||||
return true;
|
||||
}
|
||||
@@ -823,12 +831,50 @@ int DataBaseLMS::insertTrainee(Trainee trainee)
|
||||
|
||||
int DataBaseLMS::deleteTrainee(int id_trainee)
|
||||
{
|
||||
QString queryStr = QString("DELETE FROM public.trainees "
|
||||
QString queryStr;
|
||||
int res = 0;
|
||||
bool resBool = false;
|
||||
|
||||
resBool = db->transaction();
|
||||
|
||||
QSqlQuery query = QSqlQuery(*db);
|
||||
|
||||
queryStr = QString("DELETE FROM public.tasks_amm "
|
||||
"WHERE trainee_task = %1 ").arg(
|
||||
QString::number(id_trainee));
|
||||
|
||||
if(!queryExec(queryStr, &query))
|
||||
{
|
||||
resBool = db->rollback();
|
||||
return 0;
|
||||
}
|
||||
|
||||
queryStr = QString("DELETE FROM public.tasks_fim "
|
||||
"WHERE trainee_task = %1 ").arg(
|
||||
QString::number(id_trainee));
|
||||
|
||||
if(!queryExec(queryStr, &query))
|
||||
{
|
||||
resBool = db->rollback();
|
||||
return 0;
|
||||
}
|
||||
|
||||
queryStr = QString("DELETE FROM public.trainees "
|
||||
"WHERE trainee_id = %1 "
|
||||
"RETURNING trainees.trainee_id").arg(
|
||||
QString::number(id_trainee));
|
||||
|
||||
return queryExecInt(queryStr);
|
||||
res = queryExecInt(queryStr);
|
||||
if(res)
|
||||
{
|
||||
resBool = db->commit();
|
||||
return res;
|
||||
}
|
||||
else
|
||||
{
|
||||
resBool = db->rollback();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int DataBaseLMS::updateTrainee(Trainee trainee)
|
||||
|
||||
@@ -94,6 +94,7 @@ private:
|
||||
protected:
|
||||
QSqlDatabase* db;
|
||||
const QString dbName = "DataBaseLMS";
|
||||
const QString connectionName = "Connection_DataBaseLMS";
|
||||
private:
|
||||
bool transactionBegined;
|
||||
const QString dbUserName = "postgres";
|
||||
|
||||
Reference in New Issue
Block a user