3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
1

База данных не отображается в виджете

03.10.2015, 04:37. Показов 908. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот код под Windows

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
25
26
27
28
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
#include <QDebug>
#include <QtGui>
#include <QtCore>
#include <QtSql>
 
namespace Ui {
class MainWindow;
}
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
 
private:
    Ui::MainWindow *ui;
    QSqlDatabase db;
    QSqlTableModel* model;
};
 
#endif // MAINWINDOW_H
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
25
26
27
28
29
30
31
32
33
34
35
36
#include "mainwindow.h"
#include "ui_mainwindow.h"
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this ->setCentralWidget(ui->tableView);
 
    db = QSqlDatabase::addDatabase("QSQLITE");
    db.setHostName("LOCALHOST\\SQLEXPRESS");
    db.setDatabaseName("mydsn32");
 
    db.open();
 
    model = new QSqlTableModel(this);
 
    model ->setTable("People");
    model->setEditStrategy(QSqlTableModel::OnManualSubmit);
        model->setHeaderData(0, Qt::Horizontal, QObject::tr("Address"));
        model->setHeaderData(1, Qt::Horizontal, QObject::tr("Login"));
        model->setHeaderData(2, Qt::Horizontal, QObject::tr("Password"));
        model->setHeaderData(3, Qt::Horizontal, QObject::tr("Description"));
        model->select();
 
 
    ui->tableView->setModel(model);
    
}
 
MainWindow::~MainWindow()
{
    db.close();
    delete ui;
}
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
#include "mainwindow.h"
#include <QApplication>
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
 
    return a.exec();
}
База данных вроде создается но в виджете tableview не отображается??Почему? Может этот виджет нужно делать в полный размер окна?? А можно где то посмотреть предварительно(например в Object Explorer) что база данных точно создалась?? Где и как это посмотреть?? консоль вроде ошибок не выдает
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.10.2015, 04:37
Ответы с готовыми решениями:

Не отображается таблица в виджете
Здравствуйте. Я только начал разбираться в qt 4.8 и у меня возникла проблема. В центральном...

Не отображается виджет в виджете
Доброго времени суток. Такая проблема: Есть основной виджет - окно, наследуется от QWidget. И есть...

неправильно отображается время на виджете часов в HTC Desire S
Здравствуйте господа! Столкнулся спроблемой определения времени на фирменном виджите HTC. Город...

Нечитабельно отображается шрифт в виджете от Twitter на моем сайте в Mozilla Firefox
Хочу поделится проблемой. В последнее время заметил, что коряво и нечитабельно отображается шрифт в...

6
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
04.10.2015, 01:02 2
Что это такое LOCALHOST\\SQLEXPRESS?
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
05.10.2015, 13:08  [ТС] 3
а какое тогда HostName нужно устанавливать для базы данных чтобы она работала на моем компьютере?? Какие есть значения?? И db.setHostName вызывается для того чтобы привязать базу данных к определенному хосту(айпишнику) чтоли??
0
487 / 365 / 93
Регистрация: 10.03.2011
Сообщений: 1,513
Записей в блоге: 5
05.10.2015, 14:05 4
Цитата Сообщение от yura91 Посмотреть сообщение
вроде
Поставь проверку на db.open(), и выполни QSqlQuery для проверки твоего запроса. Ну и либо убери имя базы данных, либо
C++ (Qt)
1
model = new QSqlTableModel(this,"mydsn32");
У подключения по умолчанию своё имя.

Добавлено через 2 минуты
Цитата Сообщение от yura91 Посмотреть сообщение
а какое тогда HostName нужно устанавливать для базы данных чтобы она работала на моем компьютере??
SQLite ждёт имени файла. Или ":memory:" (или около того, не знаю точный синтаксис).
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
05.10.2015, 14:15  [ТС] 5
model = new QSqlTableModel(this,"mydsn32"); пишет нет соответствующей функции. А как db.open() поставить на проверку??

Добавлено через 4 минуты
а как вообще правильно задавать Host Name?? на что влияет этот параметр(ведь база данных все равно запускается у меня на компьютере)??
0
487 / 365 / 93
Регистрация: 10.03.2011
Сообщений: 1,513
Записей в блоге: 5
05.10.2015, 14:25 6
Цитата Сообщение от yura91 Посмотреть сообщение
пишет нет соответствующей функции
пардон, нужно было QSqlTableModel(this,db);
Цитата Сообщение от yura91 Посмотреть сообщение
а как вообще правильно задавать Host Name??
У SQLite имя хоста не используется, а вместо имени БД - путь до файла.
Цитата Сообщение от yura91 Посмотреть сообщение
на что влияет этот параметр(ведь база данных все равно запускается у меня на компьютере)??
SQLite его игнорирует. А остальные не знают, где твоя БД, им и хост, и порт нужен.
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
05.10.2015, 14:53  [ТС] 7
А остальные не знают, где твоя БД, им и хост, и порт нужен
Но я же свою БД создаю на сервере поэтому клиент должен знать ip и порт моего сервера. Но с БД то работает уже непосредственно сервер поэтому зачем БД отдельно задавать хост и порт?? Сервер и так может обращаться к БД разве нет??

Добавлено через 8 минут
Кстати QSqlTableModel(this,db); чет не помогло?? А как на проверку метод open() поставить??
0
05.10.2015, 14:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.10.2015, 14:53
Помогаю со студенческими работами здесь

База данных, основанная на службах vs База данных SQL Server
Доброго времени суток. Делал я, значит, Data Access Layer для ASP.NET MVC проекта. Создал обычную...

Оптовая база: База данных!
Для оптовой базы требуется разработать информационную систему, позво- ляющую обрабатывать данные...

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

Не открывается база данных Access , пишет неразпознаваемый формат базы данных
Не открывается база данных Access , пишет неразпознаваемый формат базы данных,что делать


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

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

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