Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
 
8 / 8 / 3
Регистрация: 26.03.2012
Сообщений: 358
1

работа з базой данных

26.06.2018, 12:02. Просмотров 407. Ответов 1


организация работы с базой данных. функция ничего не выводит, и раньше времени срабатывает деструктор. в чом может быть проблема и как организовать слой работы с базой данных ? сделать глобальную переменную ДатаБасе c или класс?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "database.h"
 
DataBase::DataBase()
{
    Connection();
    db.transaction();
}
DataBase::~DataBase()
{
   db.commit();
   db.close();
   qDebug()<<"destructor";
}
 
QSqlDatabase DataBase:: Connection()
    {
            db = QSqlDatabase::addDatabase("QMYSQL", "my_sql_db");
            db.setHostName("192.168.1.2");
            db.setDatabaseName("m2");
            db.setUserName("mariia");
            db.setPassword("1234");
            db.setPort(3306);
            db.open();
            return db;
    }
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 QVector<Offer> Offer:: loadOffers()
{
    if(!c.Connection().isOpen()) c.Connection();
    QString s = "select o.id, c.code, o.name, o.creation_date, o.delivery_date, p.name\
            from offer o\
            inner join contractor c on c.id=o.contractor_id \
            inner join package_offer po on o.id=po.offer_id\
            inner join package p on po.package_id=p.id\
            order by o.creation_date DESC;";
    QSqlQuery query (s, c.db);
    query.exec();    
    while(query.next())
    {
        //qDebug()<<"a";
        Offer offer(query.value(0).toInt(), query.value(2).toString(), query.value(1).toString(), query.value(3).toDate(), query.value(4).toDate(), query.value(5).toString());
        offers.push_back(offer);
    }
    qDebug()<<"size query"<<query.size();
    qDebug()<<"size vector offers"<<offers.size();
    c.db.close();
    return offers;   
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.06.2018, 12:02
Ответы с готовыми решениями:

Работа с базой данных в QT
Доброй ночи. Пишу проект на qt, опыта разработки приложений на этом фреймворке мало, как и опыта...

Qt и работа с существующей базой данных
Есть Qt 4.7 есть база данных в формате *.xls. Какой менеджер баз данных лучше выбрать для работы с...

Работа с базой данных по сети
Добрый день. Возникла такая проблема. Необходимо работать с базой данных по сети, через сервер. С...

Работа с базой данных под Android
имеется программа, работающая с БД: void Feeds::OpenDB() { QString name =...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
1
59 / 49 / 19
Регистрация: 16.06.2015
Сообщений: 206
26.06.2018, 15:24 2
ты почти нигде не проверяешь результат выполнения функций.
Например, если не выполнилось это
Цитата Сообщение от sweet_dreams Посмотреть сообщение
db.open();
, то как выполнится вот это
Цитата Сообщение от sweet_dreams Посмотреть сообщение
db.transaction();
Также при выполнении
Цитата Сообщение от sweet_dreams Посмотреть сообщение
query.exec();
неплохо было бы проверить результат, а точнее вот так
C++ (Qt)
1
2
3
4
5
if (!query.exec()) {
        std::cout << query.lastError().text().toUtf8().constData() << std::endl; //либо qDebug() << query.lastError();
} else {
    //действия с результатами запроса
}
Добавлено через 14 секунд
Цитата Сообщение от sweet_dreams Посмотреть сообщение
сделать глобальную переменную ДатаБасе c или класс?
Я, например, в главной форме делаю как и ты в функции
Цитата Сообщение от sweet_dreams Посмотреть сообщение
Connection()
, а в остальных окнах делаю
C++ (Qt)
1
db = QSqlDatabase::database("my_sql_db");
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.06.2018, 15:24

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Используя функции категории Работа с базой данных в excel 2010, реализовать запрос к базе данных
Используя функции категории Работа с базой данных, реализовать запрос к базе данных: средняя...

PHP и работа с базой данных (замена данных)
Добрый вечер. Начал ознакомление с бд. Создал ее + таблицу, написал добавление через форму, теперь...

Работа с базой данных
Есть таблица в которой записаны коды названий и эти коды я вывел в эксель, но мне нужно что бы...

Работа с базой данных
привет. читаю джангокнигу потихонечку разбираюсь с представлениями, вроде потихонечку вникаю....

Работа с базой данных
Добрый день! Прошу совета! Задание было, написать БД по билетам вокзала. Так вот, все процедуры...

Работа с базой данных
доброго вечера, друзья. помогите девушке) задали нам такое задание: написать базу данных с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.