0 / 0 / 0
Регистрация: 19.10.2018
Сообщений: 60
|
||||||
1 | ||||||
Проблема с клиент-сервером на Qt02.08.2019, 00:57. Показов 1331. Ответов 10
Доброго времени суток, столкнулся с такой проблемой: написал простенькое приложение на Qt (Телефонная книга), в котором QTableView с моделью QAbstractTableModel
С Qt работаю совсем недавно, а с клиент-серверными приложениями тем более. Видел пару вариантов с SQL, но хотелось бы обойтись без него. Спасибо.
0
|
02.08.2019, 00:57 | |
Ответы с готовыми решениями:
10
Проблема с поддержанием соединения с сервером Клиент не соединяется с сервером непонятки с клиент-сервером Клиент (Qt) не соединяется с сервером на Си |
0 / 0 / 0
Регистрация: 19.10.2018
Сообщений: 60
|
|
02.08.2019, 15:19 [ТС] | 3 |
Я как человек, который далек от приложений вида клиент-сервер хотел бы узнать следующие: 1) Таким образом смогу ли я через клиент непосредственно менять все на сервере? 2) На сервере тоже нужно определить модель (QAbstractTableModel) с методами добавления и прочего ?
Если есть какие-нибудь примеры, ну или что-то, где про это можно почитать? Буду благодарен
0
|
490 / 286 / 129
Регистрация: 30.10.2018
Сообщений: 1,309
|
|
02.08.2019, 15:38 | 4 |
При желании можно все.
Это только от тебя зависит, можешь делать, можешь в файл записывать.
0
|
0 / 0 / 0
Регистрация: 19.10.2018
Сообщений: 60
|
|
02.08.2019, 17:24 [ТС] | 5 |
Просто впервые делаю что-то подобное, а на просторах интернета нашел много тем, где обсуждалась также клиент-серверная модель, но с SQL. Поэтому я и спрашиваю, что примерно нужно сделать, чтобы на сервере у меня хранилась эта телефонная книга, а в клиенте я мог ее редачить и скачивать с сервера.
Понятно, что многое зависит от меня, но ведь не все. Возможно то, что мне хотелось бы вовсе невозможно и мне придется переделывать все под SQL. А также хотелось бы узнать немного про архитектуру, что нужно по сути хранить на сервере.
0
|
490 / 286 / 129
Регистрация: 30.10.2018
Сообщений: 1,309
|
|
02.08.2019, 21:24 | 6 |
AlexChek, ты не понимаешь как храняться данные.
Данные это набор байтов (текста) в файле, храниться он там может как угодно, главное его разпарсить к нужному формату. Для хранения на сервере не нужно ничего отображать, ты хранить данные в файле, и просто достаешь из него. Таблица - это просто если ты захочешь увидеть телефонную книгу, а хранимая информация не объязательно должна быть видна.
0
|
0 / 0 / 0
Регистрация: 19.10.2018
Сообщений: 60
|
|
02.08.2019, 22:59 [ТС] | 7 |
Хорошо, с этим я согласен, но тогда как быть, если мне нужно через клиента поменять значения в справочнике, который у сервера.
0
|
489 / 382 / 74
Регистрация: 29.05.2018
Сообщений: 1,178
|
|
03.08.2019, 18:22 | 8 |
Для этого у каждой записи в справочнике должно быть ещё одно поле, int id, по которому можно идентифицировать запись в книге. Тогда можно через id и соответствующие методы обращаться к каждой записи и делать с ней всё, что заблагорассудится.
Честно говоря, я уже возился с текстовой базой данных, и скажу, что на SQL (даже под простейшей SQLite) ваша задача решится в разы легче. Копайте в эту сторону. Тем более, что под базы данных SQL есть специально заточенная модель QSqlTableModel, которую при незначительной доработке можно отображать в QTableView.
0
|
0 / 0 / 0
Регистрация: 19.10.2018
Сообщений: 60
|
|
03.08.2019, 18:45 [ТС] | 9 |
А есть какие-нибудь примеры или какой-нибудь материал по клиент-серверным приложениям с SQL? Я встречал несколько постов на подобную тематику, но там не особо понятно было, что да как
0
|
03.08.2019, 19:11 | 10 | |||||
Решений вопроса может быть вагон и маленькая тележка.
Как пример у меня в продакшене работает 3-х звенная архитектура: СУБД-Сервер приложений-Клиент. Сервер приложений по запросу от клиента читает из СУБД данные, серелизует их в структуры (С++), далее эти структуры упаковываются в QByteArray и высылаются клиенту. Клиент у себя из QByteArray десереализует в С++ структуры, с которыми потом работает. Изменения данных идет в виде патчей, т.е отдельной структурой, которая описывает только произошедшие на клиенте изменения. Другими словами была структура
0
|
489 / 382 / 74
Регистрация: 29.05.2018
Сообщений: 1,178
|
|
03.08.2019, 19:32 | 11 |
AlexChek, почитайте Шлее, у него там всё просто и понятно описано, как работать с SQLite.
0
|
03.08.2019, 19:32 | |
03.08.2019, 19:32 | |
Помогаю со студенческими работами здесь
11
Клиент периодически не пингуется с сервером Клиент не соединяется с DHCP-сервером Друзья! клиент-сервером на сокетах Почтовый клиент 1С 8.2: Соединение закрыто сервером Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |