Russian Qt Forum
Сентябрь 08, 2010, 17:50
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Базы данных
(Модератор:
Sergeich
) >
QSqlTreeModel всем миром...
Страниц:
1
[
2
]
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QSqlTreeModel всем миром... (Прочитано 4119 раз)
crossly
Гипер активный житель
Offline
Сообщений: 894
Re: QSqlTreeModel всем миром...
«
Ответ #15 :
Ноябрь 12, 2008, 14:02 »
товарищ Zmeishe !!... сделай доброе дело для сообщества... !!
(пиво прилогается...)
Записан
нет препятствий патриотам... нет преград энтузиастам...
Zmeishe
Самовар
Offline
Сообщений: 155
Re: QSqlTreeModel всем миром...
«
Ответ #16 :
Ноябрь 12, 2008, 16:27 »
Излишков свободного времени у меня нет совсем, поэтому пинать бесполезно.
То, что у меня быстро получается, чего у других медленно получается - ну извините не моя вина.
Может у меня мозги на другой частоте работают ?
С сообществом поделюсь.
Предлагаю так же, как с многоуровневыми заголовками - делаю выжимку и выкладываю, а дальше вопрос-ответ, т.к. нет времени подробные комментарии расписывать в исходниках.
>> можно пива ему пообещать
- Барыня, водочку пить будешь?
- Ах, оставьте.
«
Последнее редактирование: Ноябрь 12, 2008, 16:39 от Zmeishe
»
Записан
Sergeich
Moderator
Супер активный житель
Offline
Сообщений: 783
Сферический писец в вакууме
Re: QSqlTreeModel всем миром...
«
Ответ #17 :
Ноябрь 16, 2008, 15:40 »
Я же уже вроде постил редактируемую tree-модель с кэшем, основанную на QAbstractItemModel, правда для одной таблицы. Хотя не помню, что за вариант выкладывал. Вобщем, см. аттач.
Записан
terlan
Бывалый
Offline
Сообщений: 462
matrix resident
Re: QSqlTreeModel всем миром...
«
Ответ #18 :
Январь 08, 2009, 22:47 »
спасибо за модель.
Только вот никак не пойму, какой должна быть структура таблицы? Пробовал сделать так:
Код:
"CREATE TABLE Object (id INTEGER PRIMARY KEY, parentName INTEGER, value1 INTEGER, value2 INTEGER)"
Базу конектит, таблицу видит, а данные не выводит. Подскажите, пожалуйста, что я мог не так сделать?
Записан
Qt 4.6.1
lit-uriy
Джедай : наставник для всех
Online
Сообщений: 2773
Re: QSqlTreeModel всем миром...
«
Ответ #19 :
Январь 08, 2009, 23:10 »
2 terlan, может внешний ключ надо на родителя?
Записан
Юра.
terlan
Бывалый
Offline
Сообщений: 462
matrix resident
Re: QSqlTreeModel всем миром...
«
Ответ #20 :
Январь 08, 2009, 23:26 »
Сделал так (добавил внешний ключ на родителя):
Цитировать
QSqlQuery query;
query.exec("CREATE TABLE Object (id INTEGER PRIMARY KEY, parentName INTEGER FOREIGN KEY, value1 INTEGER, value2 INTEGER)");
query.exec("insert into Object values(NULL,1,1,0)");
query.exec("insert into Object values(NULL,1,3,0)");
query.exec("insert into Object values(NULL,1,5,0)");
query.exec("insert into Object values(NULL,2,2,0)");
query.exec("insert into Object values(NULL,2,3,0)");
перестала заполняться таблица
Разве не могут внешние ключи для нескольких записей быть одинаковыми?
Записан
Qt 4.6.1
lit-uriy
Джедай : наставник для всех
Online
Сообщений: 2773
Re: QSqlTreeModel всем миром...
«
Ответ #21 :
Январь 09, 2009, 00:41 »
Могут, а вот NULL в первичном ключе это зачем?
Записан
Юра.
lit-uriy
Джедай : наставник для всех
Online
Сообщений: 2773
Re: QSqlTreeModel всем миром...
«
Ответ #22 :
Январь 09, 2009, 00:43 »
и зачем ты это мучаешь через Query, ведь о том пляска с моделью и была, чтобы в представлении ее использовать.
Создай таблицу, к модели прицепи вьюху, и через неё пользуй. Я так идею понимаю.
Записан
Юра.
terlan
Бывалый
Offline
Сообщений: 462
matrix resident
Re: QSqlTreeModel всем миром...
«
Ответ #23 :
Январь 09, 2009, 09:34 »
Цитата: lit-uriy от Январь 09, 2009, 00:41
Могут, а вот NULL в первичном ключе это зачем?
Прочитал такое на сайте SQLITE, раздел FAQ
Цитировать
If you declare a column of a table to be INTEGER PRIMARY KEY, then whenever you insert a NULL into that column of the table, the NULL is automatically converted into an integer which is one greater than the largest value of that column over all other rows in the table, or 1 if the table is empty
Цитата: lit-uriy от Январь 09, 2009, 00:43
и зачем ты это мучаешь через Query, ведь о том пляска с моделью и была, чтобы в представлении ее использовать.
Создай таблицу, к модели прицепи вьюху, и через неё пользуй. Я так идею понимаю.
я не мучаю через Query, просто написал небольшую программку, в которой создал базу с таблицей.
Саму SqlTreeModel не трогал, а просто подсоединяю к ней созданную базу.
Только не отображается таблица. У меня подозрение, что в таблице что-то не так, а вот что
Записан
Qt 4.6.1
lit-uriy
Джедай : наставник для всех
Online
Сообщений: 2773
Re: QSqlTreeModel всем миром...
«
Ответ #24 :
Январь 09, 2009, 11:55 »
Цитата: terlan от Январь 09, 2009, 09:34
Только не отображается таблица. У меня подозрение, что в таблице что-то не так, а вот что
дак посмотри ее с помощью %QTDIR%/demos/sqlbrowser, что там реально записалось
Записан
Юра.
terlan
Бывалый
Offline
Сообщений: 462
matrix resident
Re: QSqlTreeModel всем миром...
«
Ответ #25 :
Январь 09, 2009, 12:15 »
Цитата: lit-uriy от Январь 09, 2009, 11:55
Цитата: terlan от Январь 09, 2009, 09:34
Только не отображается таблица. У меня подозрение, что в таблице что-то не так, а вот что
дак посмотри ее с помощью %QTDIR%/demos/sqlbrowser, что там реально записалось
Подозрение касается структуры таблицы в базе - почему то модель (SqlTreemodel) не подгребает данные из созданной мною таблицы.
Ps А данные в таблицу вставляются, правда без FOREIGN KEY
-----------------------
хотя, если судить по коду sqltreemodel, то FOREIGN KEY в данной ситуации для родителя не нужен.
«
Последнее редактирование: Январь 09, 2009, 12:33 от terlan
»
Записан
Qt 4.6.1
terlan
Бывалый
Offline
Сообщений: 462
matrix resident
Re: QSqlTreeModel всем миром...
«
Ответ #26 :
Январь 09, 2009, 23:50 »
получилось:
ошибки было 2:
1) названия полей не соответствовали тем, что находятся в модели;
2) не была определена ниодна запись с родительским уровнем 0, то есть даже для первого элемента уже был указан родитель первого уровня.
Т.о.
1) создаем таблицу
Цитировать
CREATE TABLE Object (ObjID INTEGER PRIMARY KEY, ParentID INTEGER, ObjName TEXT, ObjType TEXT, Created TEXT);
2) создаем записи:
Цитировать
QSqlQuery query;
query.exec("insert into Object values(NULL,0,'Object1','Some type', 'yes')");
query.exec("insert into Object values(NULL,1,'Object2','Some type', 'yes')");
query.exec("insert into Object values(NULL,1,'Object3','Some type', 'yes')");
Зы: спасибо Константину за наводки
Записан
Qt 4.6.1
vpara
Новичок
Offline
Сообщений: 18
Re: QSqlTreeModel всем миром...
«
Ответ #27 :
Июль 29, 2010, 14:49 »
Цитата: Sergeich от Ноябрь 16, 2008, 15:40
Я же уже вроде постил редактируемую tree-модель с кэшем, основанную на QAbstractItemModel, правда для одной таблицы. Хотя не помню, что за вариант выкладывал. Вобщем, см. аттач.
По вашему примеру я сделал себе трее только с выбором из 2 таблиц (структура на рисунке) ...
А дальше возникли 2 вопроса:
1. Хочу сделать выборку еще из 2 таблиц (итого будут 4 ... структура в рисунке2) ... что посоветуете сделать в те же запросы или создавать новые ниже
2. Как установить иконки для итемов? (пока не разобрался .... но сильно не капал)
Записан
vpara
Новичок
Offline
Сообщений: 18
Re: QSqlTreeModel всем миром...
«
Ответ #28 :
Июль 29, 2010, 16:10 »
Цитата: Sergeich от Ноябрь 16, 2008, 15:40
Я же уже вроде постил редактируемую tree-модель с кэшем, основанную на QAbstractItemModel, правда для одной таблицы. Хотя не помню, что за вариант выкладывал. Вобщем, см. аттач.
Пытаюсь грубо (временно) дописать запрос ... по идее должен быть как то так:
query.exec( QString("SELECT %1 FROM %2, %3 WHERE %4 = %5 AND %6 = %7 "
"UNION ALL "
"SELECT product.product_id FROM product, product_category_xref "
"WHERE product.product_id = product_category_xref.product_id AND category_id = %5")
.arg(idName)
.arg(tableName)
.arg(tableRelated)
.arg(parentName)
.arg(id)
.arg(idName)
.arg(relatedId)
.arg(orderByField));
Но результат не радует ...
«
Последнее редактирование: Июль 29, 2010, 16:15 от vpara
»
Записан
Страниц:
1
[
2
]
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Пользовательский интерфейс (GUI)
=> Model-View-Controller (MVC)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование
=> Мультимедиа
=> 2D и 3D графика
=> Интернационализация, локализация
=> XML
=> Печать
=> Qt Script
=> ActiveX
=> Установка, сборка, отладка, тестирование
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
=> Общие вопросы
=> Уроки и статьи
=> Вопросы новичков
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
=> Архив
===> Программирование
=====> Мультимедия
=====> Python
=====> Delphi
=====> GTK
=====> Другие GUI библиотеки
===> Веб программирование
=====> PHP, PERL, CGI
=====> JavaScript
=====> WebDesign and all
Загружается...