Russian Qt Forum

Qt => Вопросы новичков => Тема начата: vladzian от Февраль 24, 2011, 21:47



Название: Добавление items в QListWidget из БД
Отправлено: vladzian от Февраль 24, 2011, 21:47
Помогите пожалуйста!!! Я студент  и совсем новичек в Qt. Хочу сделать так чтобы в QListWidget итемсы брались из БД. Т.е. допустим есть таблица с названием книг, автором, годом выпуска. Мне нужно чтобы в QListWidget я мог выбирать из названия книг, ну и соответственно там чето далее делать.
из бд читаю так:

bool SQL_READ(const QString &sql,QString *s) {

    QSqlQuery query(db);
    if(!query.exec(sql))return(false);
    s->clear();
    while(query.next())
        s->append(QString("%2;%3\r\n").arg(query.value(0).toString())
                  .arg(query.value(1).toString()));
    s->chop(2);
    return(true);
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
 db = QSqlDatabase::addDatabase("QODBC","MS Access Database");
    db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};"
                       "FIL={MS Access};DBQ=D:/prg/scan.mdb");
    db.open(); 
    QString s;

    SQL_READ("SELECT books_name FROM books",&s);

    QTextBrowser w;
    w.setText(s);
    w.show();
    return a.exec();
}


Название: Re: Добавление items в QListWidget из БД
Отправлено: Пантер от Февраль 24, 2011, 21:53
Ты и в с++ новичок. :)
Читай в ассистенте про QSqlQueryModel.


Название: Re: Добавление items в QListWidget из БД
Отправлено: vladzian от Февраль 24, 2011, 22:39
можно тогда другой вопрос?
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
   
    db = QSqlDatabase::addDatabase("QODBC","MS Access Database");
    db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};"
                       "FIL={MS Access};DBQ=D:/prg/scan.mdb");
    db.open();
    if (db.open()){
        qDebug()<<" open";
    }

    QTableView view;
    QSqlTableModel model;

    model.setTable("books");
    model.select();
    model.setEditStrategy(QSqlTableModel::OnFieldChange);
    view.setModel(&model);
    view.show();
    return a.exec();
}
база открывается, но появляется просто белое окно, никаких данных из таблицы не выводится...(я оч новичек во всем этом!! :))


Название: Re: Добавление items в QListWidget из БД
Отправлено: Пантер от Февраль 24, 2011, 23:13
База открывается? (open выдает в консоль?) Сделай после model.select () вывод qDebug () model.lastError ().text ()