crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> MySQL - не работает запись данных через QTableView, QDataWidgetMapper, etc.
QTrueFalse
  опции профиля:
сообщение 7.2.2011, 17:46
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 7.2.2011
Пользователь №: 2393

Спасибо сказали: 0 раз(а)




Репутация:   0  


Привет всем. У меня появилась проблема с мускулом. Вин7 64, Мускул 5.0, КуТэ 4.7.
Началось всё с того, что у меня был готовый проект который пользовал SQLite. Но вот решил я перевести его на MySQL. Собрал плагин, прописал драйвер, создал таблицы все - всё сделал. Плагин собирал по инструкции этай. Все эти файлы появились в директории QTDIR\plugins\sqldrivers. Как я понял, больше с ними ничего не надо делать, никуда подключать, копировать и тд. Драйвер загрузился(во всяком случае КуТэ не сказал "нот лоадед" и тд). Я подключился к своей базе. Изменил некоторые запросы специфичные для мускула(ну типа там CURDATE()) и всё такое. В базу запросы пишутся, читаются - всё хорошо. И я думал что победил... Но... Я не могу ничего записать в таблицу используя непосредственное редактирование ячеек. Они редактируются, но сразу сбрасываются после смены фокуса. Пробывал варианты с "OnManualSubmit", ОнРоуЧендж, выставлял AllEditTriggers и всё эт прописывал - не помогло(на скулайте работало по дефолту без проблем).
Также перестали работать все мапперы в проекте. Их три штуки - они все не работают. Для маппера вызывается отдельное диалоговое окно, стоит setSubmitPolicy(QDataWidgetMapper::AutoSubmit), всё вроде бы как положено. И с SQLite-ом это всё прекрасно работало. Тоесть не работают ни мапперы, ни редактирование ячеек непосредственно в таблице. Что ему не нравися - я понять не могу... Не работает на таблицах на которых нет ни отношений, ничего - просто таблица с данными и её модель - не работает... На кнопке "ок" маппера вызывается "submit()" - не помогает. Повторяю - с SQLite всё работало, тут вдруг другая база - и перестало както... Также стал неработоспособен код типа такого:
void Doors::delDoor()
{
        QModelIndex index = doorTableView->currentIndex();
        if(!index.isValid())
            return;
        QSqlRecord record = doorModel->record(index.row());
        QString DoorName = record.value(Door_Name).toString();
        int k = QMessageBox::warning(this, tr("Удаление двери"),
                                     tr("Удалить дверь \"%1\" из списка дверей?").arg(DoorName),
                                     QMessageBox::Yes | QMessageBox::No);
        if (k == QMessageBox::No)
        {
            return;
        }
        doorModel->removeRow(index.row());
        doorModel->submitAll();
        doorModel->select();
}

Тоесть он тупо ничего не делает...
В базу пишет только выполняя непосредственно SQL запросы (QSQLQuery и тд). Могу привести код, но он банален. Структура базы идентична.
Я уже тут спрашивал на соседнем форуме, но ответов ноль... Я так полагаю, мистика какаята, или это я чтото криво делаю...?
Подскажите в какую сторону смотреть, а то я уже по ночам плохо сплю))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
QTrueFalse
  опции профиля:
сообщение 7.2.2011, 23:03
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 7.2.2011
Пользователь №: 2393

Спасибо сказали: 0 раз(а)




Репутация:   0  


Появились некоторые подробности. Проверил проект на ВинХП - всё работает чуть более чем великолепно... Семерка чтоли 64-разрядная "недружит" со всем этим делом, или что может быть то?
Я вот щас на скороую руку поставил ну бук с Икспихой мускул, базу скриптанул, проект собрал, запустил - всё работает...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
QTrueFalse
  опции профиля:
сообщение 9.2.2011, 1:00
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 7.2.2011
Пользователь №: 2393

Спасибо сказали: 0 раз(а)




Репутация:   0  


Всем спасибо :-)
Заработало. Всё решилось установкой другой версии MySQL (5.1).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 20.10.2019, 11:27