crossplatform.ru

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

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> QtSql + Firebird, Реализация простого примера использования sql с firebird
Litkevich Yuriy
  опции профиля:
сообщение 7.11.2008, 22:20
Сообщение #11


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


hd_qt, доработай свой пример, после
Цитата(hd_qt @ 5.11.2008, 1:02) *
QSqlTableModel *model;
model = new QSqlTableModel(&app, db);

qDebug() << "Database: " << model->database();    
qDebug() << "Table list:\n"
        << "\t" << model->database().tables();

и
Цитата(hd_qt @ 5.11.2008, 1:02) *
model->setTable("person");
qDebug() << "Set table status: " model->lastError();

Цитата(hd_qt @ 5.11.2008, 1:02) *
model->select();
добавь:
qDebug() << "Select status: " << model->lastError();

незубудь в файл проекта добавить:
CONFIG += console debug
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
molchanoviv
  опции профиля:
сообщение 7.11.2008, 23:04
Сообщение #12


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

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




Репутация:   5  


hd_qt, а у тебя драйвер то установлен?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
hd_qt
  опции профиля:
сообщение 9.11.2008, 20:08
Сообщение #13


Студент
*

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

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 7.11.2008, 22:20) *
hd_qt, доработай свой пример

Хорошо, доработал. Вот результат:
Starting /home/hd/qtcreator-0.9/my_project/sql/sql
Database:  QSqlDatabase(driver=""QIBASE"", database=""mydb"", host=""localhost"", port=-1, user=""sysdba"", open=true)
Table list:
     ("PERSON", "IAMGOOD")
Set table status:  QSqlError(-1, "", "")
Select status:  QSqlError(-204, "Could not prepare statement", "Undefined name")

Что то мне это ни о чем не говорит :mellow:


Цитата(molchanoviv @ 7.11.2008, 23:04) *
hd_qt, а у тебя драйвер то установлен?

С использованием QSqlQueryModel у меня все работает. Может ли это быть при не установленном драйвере?!

Братцы! Как такое может быть?!
model->setTable("PERSON");
и все заработало))))
Не должно быть реакции на регистр букв. или я не прав?!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 9.11.2008, 20:54
Сообщение #14


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Цитата(hd_qt @ 9.11.2008, 20:08) *
Не должно быть реакции на регистр букв.
А ты в этом обсалютно уверен? :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
hd_qt
  опции профиля:
сообщение 9.11.2008, 21:01
Сообщение #15


Студент
*

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

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




Репутация:   0  


Цитата(ViGOur @ 9.11.2008, 20:54) *
А ты в этом обсалютно уверен? :)

нет :blush2:
Я спутал с FireBird. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 9.11.2008, 22:25
Сообщение #16


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(hd_qt @ 9.11.2008, 23:08) *
Не должно быть реакции на регистр букв. или я не прав?!
вобще в птице есть нюанс насчет регистра, зависит от диалекта БД, если:
SET SQL DIALECT 3;, то при записи имени идентификатора в кавычках, регистр учитывается, если без кавычек, то не учитывается, для совместимости со стрыми БД.

может быть в Qt, можно задавать эти параметры через
void QSqlDatabase::setConnectOptions ( const QString & options = QString() )
но я не проверял.

Я подозреваю что происходило следующее, после твоего запроса
Цитата(hd_qt @ 7.11.2008, 0:49) *
model.setQuery(QSqlQuery("select * from person;"));
, где ты идентификатор (имя таблица) не брал в кавычки, регистр символов не учитывался, а вот тут:
Цитата(hd_qt @ 7.11.2008, 0:49) *
window.setWindowTitle("Table");
Qt, видимо, обрамляет идентификатор в кавычки.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 25.4.2024, 22:04