Comments 8
И совет ваш очень вредный, ибо будет «тормозить» просто безбожно.
каждая имеет связь с предыдущей с помощью foreign key через id, т.е. при удалении необходимо каскадно удалять все «дочерние» записи. Это приводит к огромному количеству запросов, работа приложения сильно замедляется...
В SQLite можно настроить автоматическое каскадное удаление по foreign key, так что одного sql-запроса достаточно. Даже, если бы такого не было, то никакая дополнительная абстракция не поможет избежать выполнения нужного числа запросов.
Первый способ крайне опасный, если вы не пишите приложение чисто для себя. Привет sql инъекции. Допускаю, что вы код накидали чисто для примера, но в любом случае не стоит так делать.
Приветствую всех, в QSqlRelationalTableModel мне не нравится несколько моментов (Qt 4.8) , используем с QTableView к примеру:
Вы добавляете новую строку, устанавливаете значение (какой-то текст) relation поля, все Гут. Сохраняете строку (submit, select) и что получаете? Пустое значение в поле.
Попробуйте 4.7. Насколько я помню, в 4.8 этот класс был сломан.
Можно конечно попробовать 4.7. Но смысл? Мое мнение, что троли не доделали развитие QSqlRelationalTableModel на тот момент, когда продали права на Qt. А потом никому не надо было ничего развивать. Поэтому я просто сделал свое развитие PblSqlTableModel и сделал как я это вижу (у меня есть об этом свободном проекте статья на хабре)
Упрощаем работу с базами данных в Qt с помощью QSqlRelationalTableModel