![]() |
|
|
![]()
|
|
| GrishinUS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 5.9.2006 Где: Самара Репутация: нет Всего: нет |
Добрый день!
Почти готова моя прога, выполняет все что мне нужно, читает настройки из файла, но периодически вываливается в "программа выполнила недопустимую операцию. Закрыть? Отправить отчет(?)". Диалоги, при закрытии которых возникает ошибка создаются так :
В первом объекте в самом конце конструктора идет запись в БД MS SQL. Во втором объекте запись в MS SQL происходит по нажатию кнопки. Я сейчас попробовал закомментировать строки с записью в БД и запустил прогу 10 раз. НЕ вывалилась ни разу. Значит дело в конструкции, выполняющей запись в БД. Конструкция следующая : { QString strQuery; strQuery = "update......"; QSqlQuery query(strQuery); return query.exec(); } в первом случае это update, а во втором insert PS: подозреваю что SQL сервер не успевает вернуть результат |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Учись пользоваться дебагерром. Не забудь смотреть в консоль, возможно через qDebug() Qt что-то сообщает. Слишком мало информации. На вид ничего страшного не делается.
|
|||
|
||||
| GrishinUS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 5.9.2006 Где: Самара Репутация: нет Всего: нет |
в консоли пусто. в дебаггере (использую qt creator) -- вроде бы точка срабатывает, но в то же время не становится желтой и не появляются переменные для обзора, см прикрепленное файло |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 5 Всего: 44 |
GrishinUS, може стоит убрать из конструктора работу с бд в отдельную инициализирующую функцию?
или надо как минимут заключить этот кусок кода в try ... catch |
|||
|
||||
| GrishinUS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 5.9.2006 Где: Самара Репутация: нет Всего: нет |
Это можно убрать, во втором случае у меня так и сделано -- работа с БД по событию. Все равно крашится. ==> сейчас это непринципиальный вопрос где работать с БД : в конструкторе или в отдельном методе. |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 5 Всего: 44 |
GrishinUS, далее засунь код в блок try catch и проверяй еще раз
|
|||
|
||||
| GrishinUS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 5.9.2006 Где: Самара Репутация: нет Всего: нет |
Засунул. И что там ловить? |
|||
|
||||
| chaos |
|
||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 5 Всего: 44 |
для начала лови ... просто ради проверки - упадет не упадет. а дальше будешь думать. |
||||
|
|||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Может быть где-то здесь кроется проблема ?
|
|||
|
||||
| GrishinUS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 5.9.2006 Где: Самара Репутация: нет Всего: нет |
trUtf8 убрал, крашится все равно :(
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 7 Всего: 250 |
ошибка при закрытии, а даете нам код создания. Приведите код ваших диалогов. Это сообщение отредактировал(а) mes - 10.11.2008, 23:51 |
|||
|
||||
| GrishinUS |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 5.9.2006 Где: Самара Репутация: нет Всего: нет |
Код с INSERT :
Код с UPDATE:
|
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 7 Всего: 250 |
Я чего то не пойму.. У Вас когда прога крашится ? при выполнении этих функций или при закрытии диалога? Я как понял при закрытии, но где ж тогда описания класса, конструкторов и деструктора? |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
А я вообще ничего не понимаю. В этих функциях каждый раз создается новое соединение с базой, прежде чем выполнить запрос
|
|||
|
||||
| GrishinUS |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 5.9.2006 Где: Самара Репутация: нет Всего: нет |
Не обращайте внимания. Прога работает с тремя БД, к какой именно БД коннектиться зависит от условий. Я делаю допущение, что на момент выполнения запроса имеется коннект к другой базе. Конструкторы, как просил mes. Первый :
Второй :
Деструкторов нет. Это сообщение отредактировал(а) GrishinUS - 11.11.2008, 13:35 |
||||||
|
|||||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |