Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [qt4.4] Крашится прога при закрытии дочерних форм, через раз 
V
    Опции темы
mes
Дата 11.11.2008, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 7
Всего: 250



Цитата(GrishinUS @  11.11.2008,  13:34 Найти цитируемый пост)

Деструкторов нет.

Все из Вас клещами вытягивать надо.  smile 
 a описание класса где ? хотя бы перечень полей (дата-элементов). 


Это сообщение отредактировал(а) mes - 11.11.2008, 13:47


--------------------
PM MAIL WWW   Вверх
GrishinUS
Дата 11.11.2008, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 5.9.2006
Где: Самара

Репутация: нет
Всего: нет



Код

#ifndef __DOINIMPL_H__
#define __DOINIMPL_H__

#include <QDebug>
#include <QDialog>
#include <QLineEdit>
#include <QPushButton>
#include <QGridLayout>
#include <QMessageBox>

#include <QTableView>
#include <QSqlQueryModel>

#include <QtSql>
#include <QString>

#include "dialogimpl.h"
#include "ui_dlgDoIn.h"
#include "options.h"

class DoInImpl : public QDialog, public Ui::dlgDoIn
{
Q_OBJECT

public slots:
    int RarusRequest();
    int WriteIntoInOut(const QModelIndex& qIndex);
public:
        DoInImpl(iniSettings *structFormalSettings, QString *formalTxt1, QWidget * parent = 0, Qt::WFlags f = 0 );

private:
    QSqlQueryModel *model;
    Ui::dlgDoIn ui;
        QString *txt1;
        iniSettings structSettings;

};

#endif // __DOINIMPL_H__


и еще один :
Код

#ifndef __DOOUTIMPL_H__
#define __DOOUTIMPL_H__

#include "dialogimpl.h"
#include "ui_dlgDoOut.h"
#include "options.h"

class DoOutImpl : public QDialog, public Ui::dlgDoOut
{
Q_OBJECT

public:
        DoOutImpl(iniSettings *structFormalSettings, QString *qstrSomewords, QString *qstrCarID, QString *qstrKartNum, QWidget * parent = 0, Qt::WFlags f = 0 );
        bool CanDoOut();

private:
        iniSettings structSettings;
        int ConnectToRarusDB();
        int ConnectToChevroletDB();
    int CheckNewAndTunning1();
        int CheckNewAndTunning2();
    int CheckNewAndTunning3();
        int CheckNewAndTunning4();
        int CheckNewAndTunning5();
        /*int DoOut();*/
    QString *qstrCarID;
    QString *qstrKartNum;
        QString *qstrSomewords;
        QString qstrIDDOC;
public:
        bool boolCanDoOut;
private slots:
        int DoOut();
};

#endif // __DOOUTIMPL_H__


Спасибо за внимание!

PM MAIL ICQ   Вверх
mes
Дата 11.11.2008, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 7
Всего: 250



Цитата(GrishinUS @  11.11.2008,  13:50 Найти цитируемый пост)
private:
    QSqlQueryModel *model;

помойму это поле не используется.

Цитата(GrishinUS @  11.11.2008,  13:34 Найти цитируемый пост)
    connect(tableView, SIGNAL(doubleClicked(const QModelIndex&)), this, SLOT(WriteIntoInOut(const QModelIndex&)));

закомментируйте только  эту строку и попробуйте,  изменлось ли поведение краша?


--------------------
PM MAIL WWW   Вверх
GrishinUS
Дата 11.11.2008, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 5.9.2006
Где: Самара

Репутация: нет
Всего: нет



Код

QSqlQueryModel *model


используется в другом методе.

Код

connect(tableView, SIGNAL(doubleClicked(const QModelIndex&)), this, SLOT(WriteIntoInOut(const QModelIndex&)));


Закомментил. Поведение краша не изменилось. Вывод -- sql тут не при чем.

Это сообщение отредактировал(а) GrishinUS - 11.11.2008, 15:29
PM MAIL ICQ   Вверх
Torsten
Дата 11.11.2008, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 10.6.2008
Где: Pskov

Репутация: 3
Всего: 7



А дамп снять и стек вызовов раскрутить не пробовали ?
--------------------
We have no begining, we have no end. We are infinite.
PM MAIL   Вверх
GrishinUS
Дата 11.11.2008, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 5.9.2006
Где: Самара

Репутация: нет
Всего: нет



Цитата(Torsten @ 11.11.2008,  15:27)
А дамп снять и стек вызовов раскрутить не пробовали ?

неа, как это сделать?
PM MAIL ICQ   Вверх
mes
Дата 11.11.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 7
Всего: 250



В приведеннных участках проблемы пока не видно. 

Используется ли в каких нибудь методах  этих классов new /delete  для указателей на внешние данные ?

Цитата(GrishinUS @  11.11.2008,  15:26 Найти цитируемый пост)
QSqlQueryModel *model
используется в другом методе.

покажите как. 


--------------------
PM MAIL WWW   Вверх
JackYF
Дата 11.11.2008, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 7
Всего: 162



Цитата(GrishinUS @  11.11.2008,  14:30 Найти цитируемый пост)
неа, как это сделать? 

Изучайте отладчик, куда же без него.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
GrishinUS
Дата 12.11.2008, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 5.9.2006
Где: Самара

Репутация: нет
Всего: нет



Цитата(mes @ 11.11.2008,  16:18)
В приведеннных участках проблемы пока не видно. 

Используется ли в каких нибудь методах  этих классов new /delete  для указателей на внешние данные ?

Да, new используется здесь :

Код

int DoInImpl::RarusRequest()
{    

    model = new QSqlQueryModel(tableView);
    QString qstrToAppend;
    qstrToAppend.append("SELECT "
    .....


    model->setQuery(QSqlQuery(qstrToAppend));    


    tableView->setModel(model);
    return 0;
}


Это сообщение отредактировал(а) GrishinUS - 12.11.2008, 09:22
PM MAIL ICQ   Вверх
mes
Дата 12.11.2008, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 7
Всего: 250



попробуйте закомментировать эту строчку.
Цитата(GrishinUS @  12.11.2008,  09:20 Найти цитируемый пост)
  tableView->setModel(model);




--------------------
PM MAIL WWW   Вверх
GrishinUS
Дата 12.11.2008, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 5.9.2006
Где: Самара

Репутация: нет
Всего: нет



Цитата(mes @ 12.11.2008,  12:18)
попробуйте закомментировать эту строчку.
Цитата(GrishinUS @  12.11.2008,  09:20 Найти цитируемый пост)
  tableView->setModel(model);

крашится
PM MAIL ICQ   Вверх
GrishinUS
Дата 12.11.2008, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 5.9.2006
Где: Самара

Репутация: нет
Всего: нет



Цитата(JackYF @ 11.11.2008,  17:39)
Цитата(GrishinUS @  11.11.2008,  14:30 Найти цитируемый пост)
неа, как это сделать? 

Изучайте отладчик, куда же без него.

поможете разобраться с отладчиком?

http://forum.vingrad.ru/forum/topic-235898.html
PM MAIL ICQ   Вверх
Elfebet
Дата 12.11.2008, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 545
Регистрация: 15.5.2006
Где: Украина. Запорожь е.

Репутация: 5
Всего: 14



GrishinUS, а не проще было бы если б ты выложил исходники, так бы быстрее тебе б нашли ошибку (ну можеш не весь код, а поудалять лишнее), а то я вижу пост уже существует почти неделю и ты так и не нашел ошбку smile 


p.s. если у тебя отладчик не работает, то хотя бы повыстасляй мессейдж боксы в проблемных местах и ищи ошибку


--------------------
Программист не должен всё знать... он должен знать где можно посмотреть
PM MAIL ICQ GTalk   Вверх
GrishinUS
Дата 13.11.2008, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 5.9.2006
Где: Самара

Репутация: нет
Всего: нет



Цитата(Elfebet @ 12.11.2008,  17:11)
GrishinUS, а не проще было бы если б ты выложил исходники, так бы быстрее тебе б нашли ошибку (ну можеш не весь код, а поудалять лишнее), а то я вижу пост уже существует почти неделю и ты так и не нашел ошбку smile 


p.s. если у тебя отладчик не работает, то хотя бы повыстасляй мессейдж боксы в проблемных местах и ищи ошибку


Вобщем пристыдил меня Elfebet   smile  и я таки разобрался в чем дело :

в одном из методов объекта добавлялась БД, которая вызывалась с одним параметром и тянула дефолтовый коннект на себя :

Код

QSqlDatabase dbNewRarus = QSqlDatabase::addDatabase("QODBC");


добавил второй параметр сюда 

Код

QSqlDatabase dbNewRarus = QSqlDatabase::addDatabase("QODBC", "dbNewRarus");


и сюда :

Код

.....
model->setQuery(QSqlQuery(qstrToAppend, dbNewRarus));


Все работает на ура! Всем спасибо.

Это сообщение отредактировал(а) GrishinUS - 14.11.2008, 10:24
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.1025 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.