Поиск:

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


Шустрый
*


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

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



Добрый день!

Почти готова моя прога, выполняет все что мне нужно, читает настройки из файла, но периодически вываливается в "программа выполнила недопустимую операцию. Закрыть? Отправить отчет(?)".

Диалоги, при закрытии которых возникает ошибка создаются так :

Код

DoOutImpl OuterForm(&structSettings, &qstrSomewords, &qstrCarID , &qstrTMPKartNum, this);
// exec не делаю, потому что нужно выполнить только код в конструкторе, не показывая диалога
.....
DoInImpl EnterForm(&structSettings, &strTxt1, this );
EnterForm.exec();    


В первом объекте в самом конце конструктора идет запись в БД MS SQL.
Во втором объекте запись в MS SQL происходит по нажатию кнопки.
Я сейчас попробовал закомментировать строки с записью в БД и запустил прогу 10 раз. НЕ вывалилась ни разу.
Значит дело в конструкции, выполняющей запись в БД.
Конструкция следующая :

{
    QString strQuery;
    strQuery = "update......";
    QSqlQuery query(strQuery);
    return query.exec();
}

в первом случае это update, а во втором insert

PS: подозреваю что SQL сервер не успевает вернуть результат
PM MAIL ICQ   Вверх
SABROG
Дата 7.11.2008, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

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



Учись пользоваться дебагерром. Не забудь смотреть в консоль, возможно через qDebug() Qt что-то сообщает. Слишком мало информации. На вид ничего страшного не делается.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
GrishinUS
Дата 7.11.2008, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(SABROG @ 7.11.2008,  09:38)
Учись пользоваться дебагерром. Не забудь смотреть в консоль, возможно через qDebug() Qt что-то сообщает. Слишком мало информации. На вид ничего страшного не делается.

в консоли пусто.
в дебаггере (использую qt creator) -- вроде бы точка срабатывает, но в то же время не становится желтой и не появляются переменные для обзора, см прикрепленное файло

user posted image
PM MAIL ICQ   Вверх
chaos
Дата 7.11.2008, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

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



GrishinUS, може стоит убрать из конструктора работу с бд в отдельную инициализирующую функцию?
или надо как минимут заключить этот кусок кода в try ... catch
PM WWW   Вверх
GrishinUS
Дата 7.11.2008, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(chaos @ 7.11.2008,  11:51)
GrishinUS, може стоит убрать из конструктора работу с бд в отдельную инициализирующую функцию?
или надо как минимут заключить этот кусок кода в try ... catch

Это можно убрать, во втором случае у меня так и сделано -- работа с БД по событию.
Все равно крашится.
==> сейчас это непринципиальный вопрос где работать с БД : в конструкторе или в отдельном методе.
PM MAIL ICQ   Вверх
chaos
Дата 7.11.2008, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

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



GrishinUS, далее засунь код в блок try catch и проверяй еще раз
PM WWW   Вверх
GrishinUS
Дата 7.11.2008, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(chaos @ 7.11.2008,  12:46)
GrishinUS, далее засунь код в блок try catch и проверяй еще раз

Засунул. И что там ловить?
PM MAIL ICQ   Вверх
chaos
Дата 7.11.2008, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

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



Цитата(GrishinUS @ 7.11.2008,  11:17)
Цитата(chaos @ 7.11.2008,  12:46)
GrishinUS, далее засунь код в блок try catch и проверяй еще раз

Засунул. И что там ловить?

для начала лови ... просто ради проверки - упадет не упадет. а дальше будешь думать.
PM WWW   Вверх
SABROG
Дата 7.11.2008, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

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



Может быть где-то здесь кроется проблема ?

Цитата

QString QObject::trUtf8 ( const char * sourceText, const char * comment = 0, int n = -1 )   [static]
Returns a translated version of sourceText, or QString::fromUtf8(sourceText) if there is no appropriate version. It is otherwise identical to tr(sourceText, comment, n).
Warning: This method is reentrant only if all translators are installed before calling this method. Installing or removing translators while performing translations is not supported. Doing so will probably result in crashes or other undesirable behavior.



--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
GrishinUS
Дата 10.11.2008, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



trUtf8 убрал, крашится все равно :(
PM MAIL ICQ   Вверх
mes
Дата 10.11.2008, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(GrishinUS @  7.11.2008,  08:19 Найти цитируемый пост)
Диалоги, при закрытии которых возникает ошибка создаются так :

ошибка при закрытии, а даете нам код создания.  smile 

Цитата(GrishinUS @  10.11.2008,  14:43 Найти цитируемый пост)
крашится все равно :( 

Приведите код ваших диалогов.

Это сообщение отредактировал(а) mes - 10.11.2008, 23:51


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


Шустрый
*


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

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



Код с INSERT :

Код

int DoInImpl::WriteIntoInOut(const QModelIndex& qIndex)
{
    int row = qIndex.row();    
    int i = 1;    
    
    QString qstrModel;
    QString qstrGosnomer;
    QString qstrVladelec;
    QString qstrVin;
    QString qstrID;

    QString str;
    
    QModelIndex index = model->index(row, 0, QModelIndex());
    while (index.isValid())
        {
        QVariant value = model->data(index);
        if(i == 5)
         qstrID = value.toString();
        str = str +" " + value.toString();
        index = model->index(row, i++, QModelIndex());
        }
    /*txt12->setText(str);
    qDebug() << qstrModel << ":" << qstrGosnomer << ":" << qstrVladelec << ":" << qstrVin << ":" << qstrID;*/    
    
    // делаем запись РІ InOut
    QSqlDatabase dbInOut2 = QSqlDatabase::addDatabase("QODBC");

    QString qstrConnectionString = "Driver={SQL Native Client};Server=";
    qstrConnectionString.append(structSettings.InOutServ);
    qstrConnectionString.append(";Database=");
    qstrConnectionString.append(structSettings.InOutDataBase);
    qstrConnectionString.append(";Uid=");
    qstrConnectionString.append(structSettings.InOutDataBaseUser);
    qstrConnectionString.append(";Pwd=");
    qstrConnectionString.append(structSettings.InOutDataBasePassword);

    dbInOut2.setDatabaseName(qstrConnectionString);
    
    bool connected = dbInOut2.open();
    if (!connected) 
        {
         QMessageBox msgBox;

                msgBox.setText("database : InOut");
                msgBox.setIcon(QMessageBox::Critical);
                msgBox.setDefaultButton(QMessageBox::Save);
                msgBox.setInformativeText(dbInOut2.lastError().text());
                msgBox.setStandardButtons(QMessageBox::Ok);
                msgBox.setDefaultButton(QMessageBox::Ok);
                msgBox.exec();

                return 10;
        }

    QSqlQuery query;
    QString strQuery;
    strQuery = "INSERT "
    "INTO InOut "
    "    (KartaNum "
    "    , DateIn "
    "    , PostIn "    
    "    , CarID) "
    "VALUES ( ";
    strQuery.append("'");
    strQuery.append(txt1);
    strQuery.append("'");
    strQuery.append(
    "    , GETDATE() "
    "    , 1 "
    "    , '" + qstrID + "')");    

    query.exec(strQuery);

    close();

    return 0;
}


Код с UPDATE:

Код

int DoOutImpl::DoOut()
{
    QSqlDatabase dbInOut2 = QSqlDatabase::addDatabase("QODBC");

    QString qstrConnectionString = "Driver={SQL Native Client};Server=";
    qstrConnectionString.append(structSettings.InOutServ);
    qstrConnectionString.append(";Database=");
    qstrConnectionString.append(structSettings.InOutDataBase);
    qstrConnectionString.append(";Uid=");
    qstrConnectionString.append(structSettings.InOutDataBaseUser);
    qstrConnectionString.append(";Pwd=");
    qstrConnectionString.append(structSettings.InOutDataBasePassword);

    dbInOut2.setDatabaseName(qstrConnectionString);

    bool connected = dbInOut2.open();
    if (!connected)
        {
                QMessageBox msgBox;

                msgBox.setText("database : InOut");
                msgBox.setIcon(QMessageBox::Critical);
                msgBox.setDefaultButton(QMessageBox::Save);
                msgBox.setInformativeText(dbInOut2.lastError().text());
                msgBox.setStandardButtons(QMessageBox::Ok);
                msgBox.setDefaultButton(QMessageBox::Ok);
                msgBox.exec();

                return 10;
        }

    //QSqlQuery query;
    QString strQuery;
    strQuery = "update "
    "   InOut "
    "set "
    "   DateOut = GetDate() "
    "   , PostOut = ";
    strQuery.append(structSettings.Post);
    strQuery.append(" where "
    "   CarID = '");
    strQuery.append(*qstrCarID);
    strQuery.append("'");
    strQuery.append(" and "
    " KartaNum = ");
    strQuery.append(*qstrKartNum);
    try
    {
        QSqlQuery query(strQuery);
    }
    catch( char *str )
    {
        qDebug() << "Caught some other exception: " << str << "\n";
    }

    qDebug() << "sql sehr gut ==> " << strQuery;

    return 0;
}

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


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


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

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



Цитата(GrishinUS @  11.11.2008,  07:55 Найти цитируемый пост)
Код с INSERT :

Я чего то не пойму.. У Вас когда прога крашится ? при выполнении этих функций или при закрытии диалога?
Я как понял при закрытии, но где ж тогда описания класса, конструкторов и деструктора?



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


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

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



А я вообще ничего не понимаю. В этих функциях каждый раз создается новое соединение с базой, прежде чем выполнить запрос  smile 


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
GrishinUS
Дата 11.11.2008, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(SABROG @ 11.11.2008,  13:06)
А я вообще ничего не понимаю. В этих функциях каждый раз создается новое соединение с базой, прежде чем выполнить запрос  smile

Не обращайте внимания. Прога работает с тремя БД, к какой именно БД коннектиться зависит от условий. Я делаю допущение, что на момент выполнения запроса имеется коннект к другой базе.

Конструкторы, как просил mes. Первый :

Код

DoInImpl::DoInImpl(iniSettings *structFormalSettings, QString *formalTxt1, QWidget * parent, Qt::WFlags f) : QDialog(parent, f)
{
    setupUi(this);
        this->txt1 = formalTxt1;
        this->structSettings = *structFormalSettings;
        connect(txt12, SIGNAL(returnPressed()), this, SLOT(RarusRequest()));
        connect(pushButton, SIGNAL(clicked()), this, SLOT(RarusRequest()));

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


Второй :

Код

DoOutImpl::DoOutImpl(iniSettings *structFormalSettings, QString *qstrFormalSomewords, QString *qstrFormalCarID, QString *qstrFormalKartNum, QWidget * parent, Qt::WFlags f)
    : QDialog(parent, f)
{
        setupUi(this);
        this->qstrCarID = qstrFormalCarID;
        this->qstrKartNum = qstrFormalKartNum;
        this->qstrSomewords = qstrFormalSomewords;
        this->structSettings = *structFormalSettings;

        connect(btnOK, SIGNAL(clicked()), this, SLOT(DoOut()));

        this->boolCanDoOut = true;
        ConnectToRarusDB();


        if(     CheckNewAndTunning1() == 20 ||
                CheckNewAndTunning2() == 20 ||
                CheckNewAndTunning3() == 20 ||
                CheckNewAndTunning4() == 20 ||
                CheckNewAndTunning5() == 20)
    {
            this->boolCanDoOut = false;
        }
        if(boolCanDoOut)
        {
         DoOut();
        }

}


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

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

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

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


 




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


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

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