|
tableView->currentIndex, вставить строку и после .submitAll() запись останется на выбранно
|
|||
---|---|---|---|
#18+
Здравствуйте! Пытаюсь решить довольно заурядную проблемку, которую тырнеты безуспешно вопрошают аж с 2007го. Добавляю строку в tableview: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
подтверждаю изменения: Код: plaintext 1. 2. 3. 4. 5.
Запись улетает в конец списка. Оно и понятно. Когда мы к БД применяем INSERT то запись прилетает в конец списка. Так и должно быть, но на дворе какой год. Зачем ковыряться с sql-запросами и двигать новую запись на нужное место в БД? Я же использую всемогущий model....! Как мне видится решение этой проблемы: 1) пульнуть содержимое таблицы tableView в БД, заместив предыдущую таблицу. 2) задействовать фильтр, но уж совсем избыточно 3) накостылять запросами, но это вообще ерунда кая то. Посоветуйте как справиться с этим цивильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 16:46 |
|
tableView->currentIndex, вставить строку и после .submitAll() запись останется на выбранно
|
|||
---|---|---|---|
#18+
MAGRAV Зачем ковыряться с sql-запросами и двигать новую запись на нужное место в БД? Что тут вообще подразумевалось с точки зрения SQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 17:27 |
|
tableView->currentIndex, вставить строку и после .submitAll() запись останется на выбранно
|
|||
---|---|---|---|
#18+
MAGRAV Когда мы к БД применяем INSERT то запись прилетает в конец списка. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 17:55 |
|
tableView->currentIndex, вставить строку и после .submitAll() запись останется на выбранно
|
|||
---|---|---|---|
#18+
Кстати, довольно забавно. Первая строчка: Код: plaintext 1.
Насколько я понимаю, код «ui->tableView->currentIndex().row()» вернёт -1 если текущая строка не выбрана. Но к этому возвращённому значению тут же прибавляется +1. Тем самым теряется информация о том выбрана строка или нет. А потом, по уже утерянной информации мы пытаемся определить: так выбрана строка или нет, ***? Код: plaintext 1.
Стиль проектирования библиотеки Qt: не падать по возможности, а скрывать ошибки. Не факт что это хороший выбор. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 17:56 |
|
tableView->currentIndex, вставить строку и после .submitAll() запись останется на выбранно
|
|||
---|---|---|---|
#18+
MAGRAV, Расскажите ваше видение вставки записи с ФИО на "Я" если у вас сортировка по ФИО? Вы на первой странице с "А"? Или на первой но с обратной сортировкой? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 18:14 |
|
tableView->currentIndex, вставить строку и после .submitAll() запись останется на выбранно
|
|||
---|---|---|---|
#18+
PetroNotC Sharp MAGRAV, Расскажите ваше видение вставки записи с ФИО на "Я" если у вас сортировка по ФИО? Вы на первой странице с "А"? Или на первой но с обратной сортировкой? Он не понимает, что в SQL у строки нет позиции или номера. Я почему пишу. Когда лет 10-ть назад работал с SQL там по этому поводу были нестандартные расширения от вендоров. Типа вернуть третьи N записей из SELECT. Т.е. был какой-то намёк на нумерацию, но не в таблице, а... ну понятно. Там что-то поменялось? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 18:23 |
|
tableView->currentIndex, вставить строку и после .submitAll() запись останется на выбранно
|
|||
---|---|---|---|
#18+
petrav SQL у строки нет позиции или номера. Тогда Иванов Иван Иванович будет то 8-ой то 148-ой. Есть ТЗ чтобы PK был без пропусков. Это бланки строгой отчетности. И нужно не забыть что при нажатии на F5 запись может быть удалена соседом за стенкой. Все это влияет на сабж. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 18:28 |
|
tableView->currentIndex, вставить строку и после .submitAll() запись останется на выбранно
|
|||
---|---|---|---|
#18+
MAGRAVС# от С++ Qt не отличаешь Конечно не отличаю. Я слишком стар и маразматичен чтобы помнить все 100500 фреймворков в которых есть "tableview". Но, возможно, они все работают настолько одинаково, что это даже не стоит упоминания?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 18:31 |
|
tableView->currentIndex, вставить строку и после .submitAll() запись останется на выбранно
|
|||
---|---|---|---|
#18+
PetroNotC Sharp petrav SQL у строки нет позиции или номера. Тогда Иванов Иван Иванович будет то 8-ой то 148-ой. Есть ТЗ чтобы PK был без пропусков. Это бланки строгой отчетности. И нужно не забыть что при нажатии на F5 запись может быть удалена соседом за стенкой. Все это влияет на сабж. Вот именно, что Праймари Кей и номер в строгой отчётности — это разные вещи. Если это у вас одно и тоже поле, то у вас БД некорректно спроектирована. А пользуетесь вы Авто Инкремент для первичного ключа или нет — это другое. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 18:33 |
|
tableView->currentIndex, вставить строку и после .submitAll() запись останется на выбранно
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov MAGRAVС# от С++ Qt не отличаешь Конечно не отличаю. Я слишком стар и маразматичен чтобы помнить все 100500 фреймворков в которых есть "tableview". Но, возможно, они все работают настолько одинаково, что это даже не стоит упоминания?.. Потому что нужно обращать внимание на синтаксис языка (кода), а не на название "tableview". И да... они все только идеологически работают одинаково, а на практике все по-разному. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 19:08 |
|
tableView->currentIndex, вставить строку и после .submitAll() запись останется на выбранно
|
|||
---|---|---|---|
#18+
petravнужно обращать внимание на синтаксис языка (кода), а не на название "tableview". Это не приблизит к ответу на вопрос "почему оно до сих пор работает не так как хочется аффтару". Именно потому, что petravони все только идеологически работают одинаково, а на практике все по-разному. ибо вариантов этого ответа чуть больше одного: а) Данный фреймворк вообще не умеет располагать новую запись в соответствии с текущей сортировкой набора данных; б) Кто-то ему забыл сообщить о том какая сортировка текущая. И далее для каждого варианта ещё дерево подвариантов. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 19:41 |
|
tableView->currentIndex, вставить строку и после .submitAll() запись останется на выбранно
|
|||
---|---|---|---|
#18+
Модератор: Джентльмены. Успокойтесь. Шериф - в городе. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 23:29 |
|
tableView->currentIndex, вставить строку и после .submitAll() запись останется на выбранно
|
|||
---|---|---|---|
#18+
Вот именно, что Праймари Кей и номер в строгой отчётности — это разные вещи. Если это у вас одно и тоже поле, то у вас БД некорректно спроектирована. А пользуетесь вы Авто Инкремент для первичного ключа или нет — это другое. Кто вам сказал? Не будьте максималистом. Скажите еще что бд ВСЕГДА нормализована должна быть). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 23:35 |
|
tableView->currentIndex, вставить строку и после .submitAll() запись останется на выбранно
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Вот именно, что Праймари Кей и номер в строгой отчётности — это разные вещи. Если это у вас одно и тоже поле, то у вас БД некорректно спроектирована. А пользуетесь вы Авто Инкремент для первичного ключа или нет — это другое. Кто вам сказал? Не будьте максималистом. Скажите еще что бд ВСЕГДА нормализована должна быть). Конечно. Должна. Насколько я помню совсем уж базовые правила нормализации: 1. Ни одно поле данных не должно скрывать в себе множественных смыслов. А в твоём случае это и праймари кей, и номер строгой отчётности одновременно. Это плохо. 2. Ни одно поле данных не должно содержать в себе множественных данных. Оно не должно содержать ФИО, например, в виде одной строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2020, 00:13 |
|
tableView->currentIndex, вставить строку и после .submitAll() запись останется на выбранно
|
|||
---|---|---|---|
#18+
petrav, Ну есть 3 степени нормализации. Но в реальной жизни бд не нормализованы. Увы. "программирование это компромисс" (с) Поэтому это искусство. Потому что не прямо и не прямолинейно. Должны и все тут. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2020, 00:41 |
|
tableView->currentIndex, вставить строку и после .submitAll() запись останется на выбранно
|
|||
---|---|---|---|
#18+
PetroNotC Sharp petrav, Ну есть 3 степени нормализации. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2020, 01:31 |
|
tableView->currentIndex, вставить строку и после .submitAll() запись останется на выбранно
|
|||
---|---|---|---|
#18+
bk0010, Ну не из за лени же. Как это по русски - "овчинка не стоит выделки" ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2020, 09:19 |
|
tableView->currentIndex, вставить строку и после .submitAll() запись останется на выбранно
|
|||
---|---|---|---|
#18+
PetroNotC Sharp bk0010, Ну не из за лени же. Как это по русски - "овчинка не стоит выделки" Это не по-русски. Овчинка выделки не стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2020, 11:56 |
|
|
start [/forum/topic.php?fid=57&msg=40027018&tid=2017288]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 135ms |
0 / 0 |