Russian Qt Forum
Ноябрь 26, 2024, 13:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Как отлавливать Exceptions?  (Прочитано 7828 раз)
PavelVX
Гость
« : Июль 08, 2011, 10:06 »

    QString strSQL;
    QSqlQuery q = QSqlQuery();

    strSQL = QString("select");

    try{
       q.exec(strSQL);
    }
    catch (...)
    {
        QMessageBox::critical(this, tr("Error!"),
                                                   tr("Error in check!"),
                                                   QMessageBox::Ok);
    }
    if (!q.isActive())
    {
      QMessageBox::warning(0, "Error in Query",
                      q.lastError().text(),
                      QMessageBox::Yes);
    }
Почему данный try - catch не перехватывает ошибку? Через поисковик нашел инфу, что qt впринципе не особо дружит с исключениями. Через q.isActive() и q.lastError().text() ошибку можно вытащить, но хотелось на всю функцию повесть try а не кусочничать. Грустный
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Июль 08, 2011, 10:09 »

QSqlQuery не кидает исключений. Как, впрочем, и все остальное в Qt. Смирись.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #2 : Июль 08, 2011, 10:22 »

Код
C++ (Qt)
 
   if ( !q.exec(strSQL) )
   {
       QMessageBox::critical(this, tr("Error!"),
                                                  tr("Error in check!"),
                                                  QMessageBox::Ok);
   }
Намного элегантней.
Записан
ритт
Гость
« Ответ #3 : Июль 08, 2011, 14:02 »

> QSqlQuery q = QSqlQuery();
О_о
Записан
zenden
Гость
« Ответ #4 : Июль 08, 2011, 14:06 »

Дотнетчик детектед
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #5 : Июль 08, 2011, 15:58 »

Я бы кидал исключения вместо месседж боксов, а потом их перехватывал в QApplication::notify и показывал бы оттуда диалог...
Записан

Гугль в помощь
PavelVX
Гость
« Ответ #6 : Июль 13, 2011, 06:40 »

Константин
> QSqlQuery q = QSqlQuery();
О_о

Изначально брал из примера, да так и оставил.  чем это плохо?

Автор: zenden
Цитата
Дотнетчик детектед

Это видимо был оскорбительный выпад Улыбающийся. Но Qt после МС Аксеса, в плане мордашки для баз данных, это просто жалкое поделие Грустный.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #7 : Июль 13, 2011, 07:14 »

Константин
> QSqlQuery q = QSqlQuery();
О_о

Изначально брал из примера, да так и оставил.  чем это плохо?
Двойная работа.

Автор: zenden
Цитата
Дотнетчик детектед

Это видимо был оскорбительный выпад Улыбающийся. Но Qt после МС Аксеса, в плане мордашки для баз данных, это просто жалкое поделие Грустный.
Толсто. Аксес - УГ.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #8 : Июль 13, 2011, 07:53 »

нашли чё сравнивать, Qt - библиотека классов, и Access - программа.
Записан

Юра.
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #9 : Июль 13, 2011, 08:57 »

Access - не программа, а СУБД с поддержкой программирования гуя на VBScript.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
carpovpv
Гость
« Ответ #10 : Июль 21, 2011, 00:20 »

Программирование приложений баз данных в Qt реализовано очень стильно и четко. Хотя и требуется немного перестроится и научиться писать приложения, которые будут гораздо лучше MS Access. И мордашка будет симпотичнее))).
Записан
shirushizo
Гость
« Ответ #11 : Июль 21, 2011, 09:20 »

Вспоминая псевдо-sql, используемый в аксесе, я просто потом обливаюсь  Шокированный
Аксес проще, потому что сильно ограничен в возможностях. Когда разберитесь в программировании на С/С++ с использованием Кьют, сами же посмеетесь на своими словами.
Записан
PavelVX
Гость
« Ответ #12 : Июль 22, 2011, 05:30 »

Не путайте большое и зеленое. Мы используем аксес только для мордашек. Все что можно из SQL перенесли на сервак.
В Qt тоже есть корявости, так что спор бесполезен.
Записан
Sancho_s_rancho
Гость
« Ответ #13 : Июль 22, 2011, 08:43 »

Не путайте большое и зеленое. Мы используем аксес только для мордашек. Все что можно из SQL перенесли на сервак.
В Qt тоже есть корявости, так что спор бесполезен.
Это точно. К чему слова, когда есть руки. Публика требует мордобоя.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #14 : Июль 22, 2011, 09:09 »

За попкорном и пивом уже можно бежать?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.077 секунд. Запросов: 23.