![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Rocky |
![]()
Сообщение
#1
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
Отображение таблицы базы SQLite делаю с помощью модели и QTableView. Хочу сделать удаление/добавление строк. Код взял из примера для sqlbrowser (который в demos). Удаление вроде как работает, а со вставкой проблемы. В таблицу строка вставляется туда, куда нужно, а вот после вызова submitAll(), эта добавленная строка перемещается в конец таблицы... Это так и задумано, или баг или я чето не так делаю? Если открывать эту таблицу в самом sqlbrowser, то там строка добавляется, но после нажатия кнопки submit, эту добавленную строку вообще не видать.
Таблица ключевых полей не имеет, создавалась через sql-запросы напрямую (INSERT), если надо, могу привести код создания таблицы и попыток вставки строк... Если кто что подскажает, буду очень сильно признателен. Спасибо! |
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
SABROG |
![]()
Сообщение
#3
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
В принципе это логично, что строка в конце оказывается, т.к. при обычной работе с базой данных ты также не можешь вставить записи между какими-то другими. Нужно добавлять специальный столбец сортировки в таблицу в котором менять значения таким образом, чтобы "order by" выдавал нужную последовательность.
|
|
|
Rocky |
![]()
Сообщение
#4
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
SABROG, хитро, но в крайнемм случае придется делать так, спасибо ))
Litkevich Yuriy
Удаление строки работает.. А вставку делаю вот так.. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#5
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Rocky, а SABROG, совершенно прав!
|
|
|
Rocky |
![]()
Сообщение
#6
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
Ок, а как правильно это организовать? Я делаю так:
Т.е. добавил поле ID, и после вставки новой строки перенумеровываю всю таблицу.... И штука в том, что таблица перенумеровывается, но вот после вызова submitAll ничего не происходит, новый записи не сохраняются, и измененные ID тоже не сохраняются... В чем беда? поле id создавал так: id INTEGER PRIMARY KEY AUTOINCREMENT -- Добавлено Попробовал создавать таблицу с полем просто id INTEGER. Результат то же. ![]() Сообщение отредактировал Rocky - 16.2.2009, 13:27 |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 27.2.2025, 21:20 |