Russian Qt Forum
Ноябрь 22, 2024, 11:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Добавление items в QListWidget из БД  (Прочитано 4994 раз)
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();
}
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Февраль 24, 2011, 21:53 »

Ты и в с++ новичок. Улыбающийся
Читай в ассистенте про QSqlQueryModel.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
vladzian
Гость
« Ответ #2 : Февраль 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();
}
база открывается, но появляется просто белое окно, никаких данных из таблицы не выводится...(я оч новичек во всем этом!! Улыбающийся)
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Февраль 24, 2011, 23:13 »

База открывается? (open выдает в консоль?) Сделай после model.select () вывод qDebug () model.lastError ().text ()
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.113 секунд. Запросов: 22.