1 / 1 / 2
Регистрация: 19.11.2014
Сообщений: 112
1

QT и запросы MySQL

19.02.2016, 16:38. Показов 1005. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Вопрос такой:
Есть программа подключенная к бд. Вывод таблиц бд производится в tableView
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("project");
    db.setUserName("root");
    db.setPassword("");
    if (!db.open()){
        qDebug() << db.lastError().text();
        return;
    }
    else {
        qDebug() << "Success!";
    }
    model = new QSqlTableModel(this,db);
    model->setTable("special");
    model->select();
    ui->tableView->setModel(model);
    ui->comboBox->setModel(model);
    ui->comboBox->setModelColumn(1);
}
Мне нужно вывести в этуже таблицу при нажатие на кнопку запрос:
C++ (Qt)
1
2
3
4
5
6
void MainWindow::on_pushButton_clicked()
{   QTableView view;
    QSqlQueryModel model;
    model->setQuery("SELECT * FROM groups WHERE IDSpecial=2;",db);
    ui->tableView->setModel(model);
    ui->tableView->show();
Сыпет кучу ошибок:
C++ (Qt)
1
2
3
4
5
6
7
8
D:\Project\mainwindow.cpp:40: ошибка: base operand of '->' has non-pointer type 'QSqlQueryModel'
     model->setQuery("SELECT * FROM groups WHERE IDSpecial=2;",db);
          ^
D:\Project\mainwindow.cpp:41: ошибка: no matching function for call to 'QTableView::setModel(QSqlQueryModel&)'
     ui->tableView->setModel(model);
                                  ^
D:\Project\mainwindow.cpp:41: candidate is:
и тд.
Не пониманию как правельно написать запрос
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.02.2016, 16:38
Ответы с готовыми решениями:

Многопоток и MySQL запросы
Добрый день хочу написать многопоточную программу, с использованием MYSQL запросов. Идея такая,...

MySQL запросы
Начинаю изучать PHP + MySQL. Как уменьшить нагрузку на БД? Я думаю что надо убрать не нужны...

Запросы к mysql
не могу сделать два запроса к удаленной БД, pass+login что-то типо проверки пользователя. А именно...

Запросы в mysql
Помогите пожалуйста с запросами. Вроде бы не сложные запросы, но я как-то рак в них. 1.1.вывести...

5
683 / 458 / 160
Регистрация: 01.10.2015
Сообщений: 1,264
19.02.2016, 17:40 2
У вас

C++ (Qt)
1
QSqlQueryModel model;
model объявлена на стеке, а обращаетесь вы к ней через оператор стрелки, отсюда и ошибки.
Объявите указатель на QSqlQueryModel и тогда обращайтесь к model через стрелку:

C++ (Qt)
1
QSqlQueryModel *model;
1
1 / 1 / 2
Регистрация: 19.11.2014
Сообщений: 112
19.02.2016, 18:24  [ТС] 3
Исправил, но теперь программа просто крашиться... при выполнении действия
Убеите нижние дефисы, хз как прикрепить картинку или ссылку на них
{ссылка вырезана}
0
683 / 458 / 160
Регистрация: 01.10.2015
Сообщений: 1,264
19.02.2016, 18:47 4
C++ (Qt)
1
QSqlQueryModel *model;
Эту строку вынесите в заголовочный файл, модель естественно поименуйте чуть иначе, например model2, т.к. просто model у вас уже есть и это QSqlTableModel. Сам указатель надо инициализировать до первого обращения к объекту через него:

C++ (Qt)
1
model2 = new QSqlQueryQueryModel(this)
Краш скорее всего и происходит, потому что вы обращаетесь к неициализированному ничем указателю.
1
1 / 1 / 2
Регистрация: 19.11.2014
Сообщений: 112
19.02.2016, 19:39  [ТС] 5
Модель для кажого запроса свою? или если я планирую делать несколько запросов можно и model2 юзать?
0
683 / 458 / 160
Регистрация: 01.10.2015
Сообщений: 1,264
19.02.2016, 19:44 6
можно обойтись одной
1
19.02.2016, 19:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.02.2016, 19:44
Помогаю со студенческими работами здесь

Запросы mysql
Решил создать запрос, но на выходе получил ошибку #1064 CREATE DEFINER=`root`@`localhost`...

MySQL запросы
Ребята кому не сложно помогите пожалуйста с MySQL запросами. Приложил файлы. Буду очень благодарен...

Mysql запросы.
Добрый день, я с PHP и Mysql работаю не очень долго, возникла проблема. Имеется парсер JSON'а, в...

$_GET и запросы Mysql
Добрый день! Мне нужна помощь по такому вопросу: Я создаю сайт турагенства(не профессионально,...

Ajax запросы в БД mysql
Уважаемые форумчане, прошу помощи, т.к. сам не разбираюсь особо, да и оно мне как-то не очень пока...

Обычные mysql запросы
Есть ли различия между этими двумя запросами? mysql_query('SELECT * FROM table WHERE...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru