Название: QComboBox+QSqlRelationalTableModel Добавление новых значений в таблицу Отправлено: RVZ от Октябрь 06, 2010, 12:22 Всем доброе время суток!
Ни как не могу разобраться как заставить QComboBox editable добавлять новые значения в таблицу (http://) то есть есть две таблицы одна с парой (первичный ключ; значение) А вторая основная с массой столбцов (один из которых внешний ключ к первой) в общем все как бы работает до тех пор пока достаточно значений в первой таблице как только надо что то добавить значение(текст) в QComboBox вводится(с клавы) но в таблицы не попадает у кого нибудь есть пример как это реализовать У меня только пока идея обнюхивать все изменения QComboBox и если значение новое инсертить его в таблицу SQL запросом но уж как то сильно педалями отдает такой метод может у QComboBox есть бортовой метод? Название: Re: QComboBox+QSqlRelationalTableModel Добавление новых значений в таблицу Отправлено: RVZ от Октябрь 07, 2010, 15:07 Что то мне подсказывает что наверное с делегатом лажа какаято
QDataWidgetMapper *mapper = new QDataWidgetMapper(); mapper->setItemDelegate(new QSqlRelationalDelegate()); Сохраняет в базе только текстовые поля На изменение даты кречит QODBCResult::exec: unable to bind variable: "[Microsoft][SQL Server Native Client 10.0]Optional feature not implemented" Название: Re: QComboBox+QSqlRelationalTableModel Добавление новых значений в таблицу Отправлено: crossly от Октябрь 07, 2010, 15:18 тебе ODBC ругается... причем тут делегат??
Название: Re: QComboBox+QSqlRelationalTableModel Добавление новых значений в таблицу Отправлено: RVZ от Октябрь 07, 2010, 15:43 Ну наверное потому что в момент изменения поля с датой происходит эта ругань
А LineEdit нормально меняется Думаю что это делегат данные портит от поля с датой Название: Re: QComboBox+QSqlRelationalTableModel Добавление новых значений в таблицу Отправлено: RVZ от Октябрь 07, 2010, 18:02 И так в общем добавление новых строк из QComboBox решил пидальным способом расстраивает только то что QComboBox много в проекте
Код:
но как я предполагаю есть готовые решения просто мне пока не известные и данный костыль тока на первое время чтобы просто работало Ну а с датой бяда надо что то делать ??? Название: Re: QComboBox+QSqlRelationalTableModel Добавление новых значений в таблицу Отправлено: RVZ от Октябрь 09, 2010, 23:26 В общем разобрался с датой
По мимо ComboBox на форме были еще и dateedit поля которые не хотели сохранятся оказалось что причина тип в поле таблицы SmallDateTime при попытки записи выдавал это QODBCResult::exec: unable to bind variable: "[Microsoft][SQL Server Native Client 10.0]Optional feature not implemented" хотя формат указанный в dateedit был похож поменял тип столбца в таблице на DateTime и все заработало. P.S. Движок MSSQL2005 Название: Re: QComboBox+QSqlRelationalTableModel Добавление новых значений в таблицу Отправлено: DrHaos от Октябрь 10, 2010, 23:13 У проблема похожая на сколько я понимаю, есть QtSqlRelationalTableModel, у нее одно из полей внешний ключ (fkey) ну и соответвенно связанная таблица ID, Name. Все поля таблицы привязаны к виджетам на форме через QDataWidgetMapper, fkey привязан к ComboBox. При добавлении в связную таблицу нового значения в ComboBox оно отображается, в самой связной таблице добавляется но выбрать его в главной таблице не получается. После перезапуска приложения данный пункт выбрать уже можно.
Название: Re: QComboBox+QSqlRelationalTableModel Добавление новых значений в таблицу Отправлено: RVZ от Октябрь 10, 2010, 23:37 Цитировать При добавлении в связную таблицу нового значения Что то не понятно как значение добавляется?-внешним каким то действием например от другой программы -каким нибудь слотом SQL операции -или самим ComboBox добавляет(так у меня не получилось хотя не понятно почему) Цитировать в ComboBox оно отображается, в самой связной таблице добавляется по идеи модель держит курсор открытым и в ComboBox изменения таблиц должны отображаться в реальном времени а вот данные попадают в таблицу BD из модели в зависимости от выбранного способа редактирования например ручное потверждение Код: model->setEditStrategy(QSqlTableModel::OnManualSubmit); Цитировать но выбрать его в главной таблице не получается. После перезапуска приложения данный пункт выбрать уже можно. Непонятно чем выбратьно может имеет смысл заново проселектить модельку И как проверял что значения попали в таблицу Название: Re: QComboBox+QSqlRelationalTableModel Добавление новых значений в таблицу Отправлено: RVZ от Октябрь 14, 2010, 11:34 Цитировать У проблема похожая на сколько я понимаю, есть QtSqlRelationalTableModel Мда.... Сам только что обратил внимание что запись в связанную таблицу добавляется а в основную (submitAll()) значение не сохраняется причем не сохраняется не только значение данного QComboBox но и всех остальных. Что с этим делать пока не придумал ??? Неужели ни кто не сталкивался с такой проблемой??????? Название: Re: QComboBox+QSqlRelationalTableModel Добавление новых значений в таблицу Отправлено: DrHaos от Октябрь 14, 2010, 13:59 Есть кое какая информация http://pythonistaa.blogspot.com/ но это уже танцы с бубном, не очень хочется этим заниматься еще http://bugreports.qt.nokia.com/browse/QTBUG-10056 так что это вполне может быть просто багом.
|