![]() |
|
|
![]()
|
|
| idsp |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 27.5.2011 Репутация: нет Всего: нет |
Привет!
Разбираюсь с бд, но пока не совсем успешно. Пишу программу. Что она делает: Выбирается папка с изображениями, проверяется валидность их имени по шаблону №этажа_№порядка("1floor_1order", "4floor_22order"...) кнопкой check. Далее, кнопка start вмесете с изображениями передает информацию, взятую из имени файла (номер этажа и порядок следования фотографий), создавая таблицу на основе этих данных. Если проверка имени файла выявила неправильные имена файлов, то start блокируется. Мозги совсем не варят, заболел ( Не могу сообразить, как загрузить данные в бд и вывести их в таблице. Note: отображать фотографии не нужно, достаточно в поле "file" вывести их имя. Это сообщение отредактировал(а) idsp - 27.5.2011, 16:37 Присоединённый файл ( Кол-во скачиваний: 8 )
Program.zip 3,96 Kb |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
в ф-ции
bool dbCreate::downloadData(QString file, QString &floor, QString &order) при создании QSqlQuery ему нужно в качестве параметра дать БД, с которой работать. Вот так
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| idsp |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 27.5.2011 Репутация: нет Всего: нет |
Исправил, но ситуация не изменилась
Может, я что-то концептуально не понимаю и не реализовал. |
|||
|
||||
| borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
ооооо. да, не усмотрел...
в ф-ции void dbCreate::createConnection() создаётся БД
и благополучно убивается по выходу из ф-ции. QSqlDatabase db нужно сделать членом класса dbCreate, а в ф-ции downloadData не создавать БД, а использовать эту... в общем как-то так:
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
| idsp |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 27.5.2011 Репутация: нет Всего: нет |
Исправил. Создал в папке фотографии с именами 3floor_11order 3floor_12order 3floor_13order , выбрал их, проверил их имена check'ом. И все на этом =)) больше ни какого эффекта не наблюдаю. Кнопка start, которая загружает фотки в бд ничего визуально не изменила. |
|||
|
||||
| borisbn |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
мдааа. невнимательно я посмотрел... у тебя модель никак не привязана к базе. в конструкторе QSqlTableModel нужно указать, с какой базой ей работать. Т.о. есть два варианта:
1. dbCreate нужно создавать раньше модели, добавить в этот класс ф-цию получения базы. что-нибудь такое
а при создании модели передать в неё БД:
2. (Этот вариант мне лично больше нравится) Т.к. за БД у тебя отвечает отдельный класс (dbCreate), то и модель стОит создавать в нём:
а в dbViewer:
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||||||
|
|||||||||
| idsp |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 27.5.2011 Репутация: нет Всего: нет |
Столкнулся с двуми проблемами:
1) Если первый раз запустить программу и загрузить в нее данные, то они не отображаются сразу же в окне ( Вроде бы model->select() поставил, а не работает). Перезапуск программы помогает. После него все отображается сразу же после добавления. 2) Не получается из бд считать данные, все время возвращается -1.
|
|||
|
||||
| idsp |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 27.5.2011 Репутация: нет Всего: нет |
Вторую проблему решил (считывание из базы данных).
Забыл next использовать. А вот с первой ни как не разберусь. "1) Если первый раз запустить программу и загрузить в нее данные, то они не отображаются сразу же в окне, да и названий столбцов тоже нет( Вроде бы model->select() поставил, а не работает). Перезапуск программы помогает. После него все отображается сразу же после добавления." Это сообщение отредактировал(а) idsp - 10.6.2011, 16:37 |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |