Russian Qt Forum
Ноябрь 23, 2024, 18:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Стандартный способ клиент-сервер-БД  (Прочитано 5341 раз)
CJ1
Гость
« : Октябрь 27, 2012, 18:22 »

Привет всем.

Я делаю так, клиент отправляет например ключевое слово, сервер его ловит, делает запросы к БД и передает эти данные просто в сыром виде по строчке, а клиент их обрабатывает и собирает например QTableWidget.


А есть подобный способ только стандартный?

Тоесть например, чтоб не считать количество столбцов и строк в БД. И не отправлять данные построчно. А сразу как нибудь?
Записан
Bepec
Гость
« Ответ #1 : Октябрь 27, 2012, 22:08 »

Клиент посылает запрос. -> Сервер его ловит -> обрабатывает данные в базе -> сериализует данные -> посылает клиенту -> клиент строит tableWidget.

Что тут непонятного? 

PS в упрощении всё должно выглядеть проще:

клиент -> кодовое слово -> сервер -> (неведомая зверушка, не волнующая клиент) -> получение данных -> построение модели.
Записан
CJ1
Гость
« Ответ #2 : Октябрь 28, 2012, 09:31 »

Я же написал что так и делаю!
Я хотел легкий способ
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Октябрь 28, 2012, 10:22 »

В общем случае есть понятие "пакет данных", имеется заголовок. В простейшем случае заголовок содержит ID т.е. тип, сигнатура (ключевое слово) чтобы принимающий понял что это. И длину данных, чтобы принимающий знал сколько читать. Дальше крутите как хотите. Часто пакет считывается в буфер (напр QByteArray) это удобно чтобы приемнику не суетиться пока весь пакет не прочитан. Передавать по 1 строке не запрещено но необязательно - можно в пакете указать число строк. Нет принципиальной разницы "по сети" или как (напр запись на диск)
Записан
Bepec
Гость
« Ответ #4 : Октябрь 28, 2012, 10:58 »

Что может быть легче, чем взять Qt классы и написать простейший клиент-сервер. Возьми даже из примеров - простейший чат. Там строк дай боже 50 наберётся.
Записан
CJ1
Гость
« Ответ #5 : Октябрь 28, 2012, 11:54 »

Да, у меня так и есть передаются пакеты, и размеры.

Но это руками я делал.

А я хотел чтоб был типо класс, что то такоя. Но раз нету, то спасибо!
Записан
Bepec
Гость
« Ответ #6 : Октябрь 28, 2012, 11:58 »

50 строк кода... Какой нафиг класс для этого? Улыбающийся

По идее у вас он должен быть одним и на стороне клиента и на стороне сервера. Чтобы при изменениях, изменения вносились и туды и туды Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #7 : Октябрь 28, 2012, 13:22 »

Да, у меня так и есть передаются пакеты, и размеры.

Но это руками я делал.
Все равно все сводится к операторам << и >> (ну или вумными словами "сериализации"). Передача/прием по сети использует тот же код что и запись/чтение в файл, просто др поток - и все
Записан
CJ1
Гость
« Ответ #8 : Октябрь 28, 2012, 16:04 »

Блин, да просто щас задания, нужно 300 таблиц передавать, и каждая абсолютно разная, и у каждой разные вычисления. я предложил заказчику сделать возможность самому создавать таблицы, и тогда программа диамически расширяемая будет, так он посмотрел как это будет выглядеть, и сказал не надо ему расширяемость, пусть будет все статически. А я уже подписался на работу, и 2 касаря баксов снял..... Так уже потратил, отказываться нереально. А делать придется, вот и подумал, может можно как то по проще сделать
Чтоб постоянно не делать этого

Цитировать
клиент -> кодовое слово -> сервер -> (неведомая зверушка, не волнующая клиент) -> получение данных -> построение модели.
Записан
Bepec
Гость
« Ответ #9 : Октябрь 28, 2012, 16:35 »

Это называется что? личные подробности жизни автора.

Так что потихоньку клепай 300 таблиц, стараясь успеть в срок )
« Последнее редактирование: Октябрь 28, 2012, 17:24 от Bepec » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #10 : Октябрь 28, 2012, 16:50 »

Это называется что? Это называется жадность. А если ещё и сроки прижатые, то недостаток ума.
Ну вот не надо углубляться в подробности личной жизни (так неосторожно раскрытые автором). Где и с кем он пробухал эти деньги - его личное дело.

Непонятно что его смущает - в любом случае ID (ключевое слово) неизбежно и никакой ошибки он пока не сделал (не успел)
Записан
CJ1
Гость
« Ответ #11 : Октябрь 28, 2012, 17:01 »

Буду клепать......
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.072 секунд. Запросов: 22.