Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Приконнектиться к SQLlite3


Автор: ЛунныйОборотень 4.2.2013, 17:27
Здравствуйте!

Пытаюсь приконнектиться к sqllite3 ,но в дебаге вываливается с ошибкой.

Класс, отвечающий за работу с БД.
Код

Database::Database(QObject *parent) :
    QObject(parent)
{
    rowcounter=0;
    _model=new QSqlTableModel(this);
    db=new QSqlDatabase(this);
    db->addDatabase("QSQLITE");
   if(!db->isOpen())
   {
        if("TimeCounter"!=db->databaseName())
        {
            qDebug()<<this<<__FUNCTION__<<__LINE__<<db->lastError().text();
            db->setDatabaseName("TimeCounter");
            _model->setTable("Time");
            _model->setHeaderData(0, Qt::Horizontal, "id");
            _model->setHeaderData(1, Qt::Horizontal, "Time");
            _model->setHeaderData(2, Qt::Horizontal, "Date");
            qDebug()<<this<<__FUNCTION__<<__LINE__<<"Db created"<<db->databaseName();
            qDebug()<<this<<__FUNCTION__<<__LINE__<<_model->tableName();
        }
    }
    else {
        qDebug()<<this<<__FUNCTION__<<__LINE__<<"db is open";
        db->close();
  //  }

}


Строка 
Код

db=new QSqlDatabase(this);

неправильная..почему?
Если ее убрать,то приложение просто не запускается...

Подскажите пожалуйста,где можно почитать о работе с БД в Qt?
Спасибо.

Автор: _GRIN_ 5.2.2013, 15:04
Цитата(ЛунныйОборотень @  4.2.2013,  15:27 Найти цитируемый пост)
Строка 

db=new QSqlDatabase(this);

неправильная..почему?
Если ее убрать,то приложение просто не запускается...


Потому что нет такого конструктора QSqlDatabase( QObject* ).
Поменяй на 
Код

db=new QSqlDatabase();

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)