crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QtSql + Firebird, Реализация простого примера использования sql с firebird
hd_qt
  опции профиля:
сообщение 4.11.2008, 22:02
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 10
Регистрация: 4.11.2008
Из: Саратов
Пользователь №: 409

Спасибо сказали: 1 раз(а)




Репутация:   0  


Здравствуйте!
Хочу написать программу на QT (скачал и компилировал QT-4.4.3) (в Linux ) для работы с базой данных firebird (FirebirdSS-2.1.1.17910-0.i686).
Попробовал троллевский пример. Программа соединяется с БД и заполняет ее. Но QTableView не отображает содержимого (хотя при использовании SQLite все ок ).
Вот код:
Исходник
#include <QtGui>
#include <QtSql>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QSqlDatabase db = QSqlDatabase::addDatabase("QIBASE");
    db.setHostName("localhost");
    db.setDatabaseName("mydb");
    db.setUserName("sysdba");
    db.setPassword("********");

    if (!db.open()) {
        QMessageBox::critical(0, qApp->tr("Cannot open database"),
            qApp->tr("Unable to establish a database connection.\n"
                     "This example needs SQLite support. Please read "
                     "the Qt SQL driver documentation for information how "
                     "to build it.\n\n"
                     "Click Cancel to exit."), QMessageBox::Cancel);
        return 1;
    }

    QSqlQuery query;
    query.exec("create table person (ID INTEGER primary key, "
               "firstname varchar(20), lastname varchar(20))");
    query.exec("insert into person values(101, 'Danny', 'Young')");
    query.exec("insert into person values(102, 'Christine', 'Holand')");
    query.exec("insert into person values(103, 'Lars', 'Gordon')");
    query.exec("insert into person values(104, 'Roberto', 'Robitaille')");
    query.exec("insert into person values(105, 'Maria', 'Papadopoulos')");

    QSqlTableModel *model;
    model = new QSqlTableModel(&app, db);
    model->setTable("person");
    model->select();
    model->submitAll();

    QTableView view;
    view.setModel(model);

    QHBoxLayout layout;
    layout.addWidget(&view);

    QWidget window;
    window.setWindowTitle("Table");
    window.setLayout(&layout);
    window.show();

    return app.exec();
}


Помогите найти решение, пожалуйста.
Причина редактирования: оборачивайте длинный код в тэг expand
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 20.4.2024, 1:25