forked from ondra/server-sdk
57 lines
1.5 KiB
C++
57 lines
1.5 KiB
C++
#include "databasemanager.h"
|
|
|
|
namespace serversdk {
|
|
|
|
DatabaseManager::DatabaseManager(const QString& host, const QString& dbName, const QString& user, const QString& password, bool dryMode)
|
|
: mDryMode(dryMode)
|
|
{
|
|
db = QSqlDatabase::addDatabase("QPSQL");
|
|
db.setDatabaseName(dbName);
|
|
db.setHostName(host);
|
|
db.setUserName(user); // home-office stuff -->> db.setPort(80);
|
|
db.setPassword(password);
|
|
if (db.open())
|
|
{
|
|
query = QSqlQuery("query", db);
|
|
} else {
|
|
log("Opening error" + db.lastError().text());
|
|
emit error();
|
|
}
|
|
}
|
|
|
|
bool DatabaseManager::executeQuery(QSqlQuery &query)
|
|
{
|
|
if (mDryMode){
|
|
QString sqlStatement = getLastQuery(query);
|
|
qDebug() << sqlStatement;
|
|
|
|
}
|
|
if (!mDryMode || query.isSelect()){
|
|
if (!query.exec()){
|
|
QString msg = QString("Source: Database Manager, Error: %1").arg(query.lastError().text());
|
|
log(QString(msg));
|
|
emit error();
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
QString DatabaseManager::getLastQuery(const QSqlQuery& query) const
|
|
{
|
|
QString str = query.lastQuery();
|
|
QMapIterator<QString, QVariant> it(query.boundValues());
|
|
while (it.hasNext())
|
|
{
|
|
it.next();
|
|
str.replace(it.key(),it.value().toString());
|
|
}
|
|
return str;
|
|
}
|
|
|
|
void DatabaseManager::log(const QString &msg) const
|
|
{
|
|
qDebug() << "database logger implement logger";
|
|
}
|
|
|
|
} // core
|