Делаю консольное приложение, работающее с БД, непойму как добится полноценной работы с БД. При инициализации БД (QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");) на консоль выводится ошибка:
QSqlDatabase: QSQLITE driver not loaded
Файл test.pro:
TEMPLATE = app
TARGET = tsreader
DEPENDPATH += .
INCLUDEPATH += .
CONFIG += console
QT += xml sql core
QT -= gui
HEADERS += tsreader.h dbconnect.h ticket.h
SOURCES += main.cpp
Файл dbconnect.h:#include <QtSql>
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
#include <QString>
#include <QDebug>
//=====================================================
// Установим соединение с БД
//=====================================================
bool OpenDb(QString dbname)
{
bool ok;
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(dbname);
ok = db.open();
qDebug() << db << "\n\r";
if (!ok)
{
qDebug() << "OpenDb: " << db.lastError().text() << "\n\r";
}
return ok;
}
А ты уверен, что у тебя установлена поддержка QSQLITE?
Проверь в http://crossplatform.ru/documentation/qtdoc4.3/demos-sqlbrowser.php, который находится в %QTDIR%/demos/sqlbrowser/. При запуске там предлагаются варианты на данный момент поддерживаемых твоей оибой БД.
p.s. Как с компилил, так и работает.
Вообще у меня работают проги с этой базой, но они с графическим интерфейсом. А эта консольная - не хотит
Я в main() прибил QAplication, т.к. приложение консольное, и вроде так правильно. У меня пока идей ни каких не появилось.
Вот архивчик с проектом на всякий случай:
rtt_tool_2.zip ( 3.26 килобайт )
: 211
Кое-что прояснилось, QAplication-то я удалил, а замены ему не сделал, теперь так:
#include <QCoreApplication>
...
int main(int argc, char *argv[])
{
...
QCoreApplication app(argc, argv);
...
return app.exec();
}
Всё зависит от того, нужна ли тебе обработка сигналов и событий.
Если нет - то твоё решение вполне годится.
Если нужна - пускай app.exec() и по окончанию обработки зови app.quit() или QCoreApplication::exit(int)
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)