#include "querythreadcommand.h"#include <QMutex>#include <QQueue>#include <QObject>#include <QThread>#include <QVariant>#include "libpq-fe.h"

Go to the source code of this file.
Classes | |
| struct | QueryThreadConnSpecs |
| QueryThreadConnSpecs is a command struct used to pass the connection specs. More... | |
| class | QueryQueue |
| QueryQueue is used by QueryWorker to extract the QueryThreadCommand and query with it the database. More... | |
| class | QueryWorker |
| The class that does all the work with the database. More... | |
| class | QueryThread |
| This is the thread in which QueryWorker works. More... | |
Functions | |
| QSqlDatabase | createConnection (const QueryThreadConnSpecs &specs, const char *connName) |
| void | connectToDatabase (QSqlDatabase db) |
| Q_DECLARE_METATYPE (PGconn *) | |
| void connectToDatabase | ( | QSqlDatabase | db | ) |
Local function to open a connections.
Referenced by QueryWorker::slotExecute().
{
static QMutex mutex;
QMutexLocker lock(&mutex);
qDebug() << "Opening connection " << db.connectionName() << " ...";
if (db.open())
{
qDebug() << "Connection " << db.connectionName() << " was successfully established with the server.";
Q_ASSERT(db.driver()->hasFeature(QSqlDriver::QuerySize));
Q_ASSERT(db.driver()->hasFeature(QSqlDriver::Transactions));
Q_ASSERT(db.driver()->hasFeature(QSqlDriver::PreparedQueries));
//Q_ASSERT(db.driver()->hasFeature(QSqlDriver::BatchOperations));
Q_ASSERT(db.driver()->hasFeature(QSqlDriver::EventNotifications));
//config
db.exec("SET search_path TO \"$user\",public,application,application_deprecated");
}
else
{
qWarning() << "Unable to connect to database:" << db.lastError().text();
}
}
| QSqlDatabase createConnection | ( | const QueryThreadConnSpecs & | specs, | |
| const char * | connName | |||
| ) |
Local function to setup connection parameteres.
Referenced by QueryWorker::QueryWorker().
{
static QMutex mutex;
QMutexLocker lock(&mutex);
qDebug() << "Creating database connection " << connName << " ...";
QSqlDatabase db = QSqlDatabase::addDatabase(specs.driver, connName);
db.setDatabaseName(specs.dbName);
db.setHostName(specs.host);
db.setPort(specs.port);
db.setUserName(specs.user);
db.setPassword(specs.passwd);
if (specs.driver == "QPSQL"){
db.setConnectOptions("connect_timeout = 1");
}
Q_ASSERT(!db.isOpen());
return db;
}
| Q_DECLARE_METATYPE | ( | PGconn * | ) |
1.7.1