Найти - Пользователи
Полная версия: PyQt4 QtSql не могу добавить строку в QtSql.QRelationalTableModel так, чтобы она сохранилась в БД.
Начало » Базы данных » PyQt4 QtSql не могу добавить строку в QtSql.QRelationalTableModel так, чтобы она сохранилась в БД.
1 2
reclosedev
Pluto
Вдобавок, теперь вставленная запись сохраняется в БД. Вот только вручную изменять вновь появившуюся строку в таблице на форме бесполезно! Сохраняется только то, что было вставлено программно. Сколько этот самый урюк не меняй, он всё равно останется урюком!
http://doc.qt.digia.com/qt/qsqltablemodel.html#EditStrategy-enum
self.model.setEditStrategy(QtSql.QSqlTableModel.OnFieldChange)

Pluto
А почему такой глюк никому не известен?
Известен
http://blog.oh-mypixel.com/qt-qsqlrelationaltablemodel-and-insertrecord-foreign-key-cannot-be-null/
http://qt-project.org/forums/viewthread/3872
и еще что-то попадалось.

Pluto
Как люди раньше писали программы с QRelationalTableModel? Или ей никто до меня не пользовался?
Добавляли QSqlField, наверное. Это же C++, у них нет SQLAlchemy и Django-ORM
Pluto
Какая гадость! Какая гадость… эта ваша QSqlRelationalTableModel!
Мало того, что к добавляемой записи (record) нужно вручную присобачивать ещё одно поле (ИДИОТИЗМ!!!), так ещё эта ?*:%;%:?(* гадина не показывает строки из БД, если в связанном поле содержится NULL или же значение, которого нет в связанной таблице (справочнике).

Придётся послать её в %;№%:?* и писать свою программу без неё.

П.С. Очень злой…
Pluto
А SQLAlchemy есть только под линукс?
Pluto
Оу! Да она сама на питоне что ль написана? Шо це таке, вообще? Что-то пока не разобрался.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB