Russian Qt Forum

Qt => Базы данных => Тема начата: CJ1 от Октябрь 27, 2012, 18:22



Название: Стандартный способ клиент-сервер-БД
Отправлено: CJ1 от Октябрь 27, 2012, 18:22
Привет всем.

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


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

Тоесть например, чтоб не считать количество столбцов и строк в БД. И не отправлять данные построчно. А сразу как нибудь?


Название: Re: Стандартный способ клиент-сервер-БД
Отправлено: Bepec от Октябрь 27, 2012, 22:08
Клиент посылает запрос. -> Сервер его ловит -> обрабатывает данные в базе -> сериализует данные -> посылает клиенту -> клиент строит tableWidget.

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

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

клиент -> кодовое слово -> сервер -> (неведомая зверушка, не волнующая клиент) -> получение данных -> построение модели.


Название: Re: Стандартный способ клиент-сервер-БД
Отправлено: CJ1 от Октябрь 28, 2012, 09:31
Я же написал что так и делаю!
Я хотел легкий способ


Название: Re: Стандартный способ клиент-сервер-БД
Отправлено: Igors от Октябрь 28, 2012, 10:22
В общем случае есть понятие "пакет данных", имеется заголовок. В простейшем случае заголовок содержит ID т.е. тип, сигнатура (ключевое слово) чтобы принимающий понял что это. И длину данных, чтобы принимающий знал сколько читать. Дальше крутите как хотите. Часто пакет считывается в буфер (напр QByteArray) это удобно чтобы приемнику не суетиться пока весь пакет не прочитан. Передавать по 1 строке не запрещено но необязательно - можно в пакете указать число строк. Нет принципиальной разницы "по сети" или как (напр запись на диск)


Название: Re: Стандартный способ клиент-сервер-БД
Отправлено: Bepec от Октябрь 28, 2012, 10:58
Что может быть легче, чем взять Qt классы и написать простейший клиент-сервер. Возьми даже из примеров - простейший чат. Там строк дай боже 50 наберётся.


Название: Re: Стандартный способ клиент-сервер-БД
Отправлено: CJ1 от Октябрь 28, 2012, 11:54
Да, у меня так и есть передаются пакеты, и размеры.

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

А я хотел чтоб был типо класс, что то такоя. Но раз нету, то спасибо!


Название: Re: Стандартный способ клиент-сервер-БД
Отправлено: Bepec от Октябрь 28, 2012, 11:58
50 строк кода... Какой нафиг класс для этого? :)

По идее у вас он должен быть одним и на стороне клиента и на стороне сервера. Чтобы при изменениях, изменения вносились и туды и туды :)


Название: Re: Стандартный способ клиент-сервер-БД
Отправлено: Igors от Октябрь 28, 2012, 13:22
Да, у меня так и есть передаются пакеты, и размеры.

Но это руками я делал.
Все равно все сводится к операторам << и >> (ну или вумными словами "сериализации"). Передача/прием по сети использует тот же код что и запись/чтение в файл, просто др поток - и все


Название: Re: Стандартный способ клиент-сервер-БД
Отправлено: CJ1 от Октябрь 28, 2012, 16:04
Блин, да просто щас задания, нужно 300 таблиц передавать, и каждая абсолютно разная, и у каждой разные вычисления. я предложил заказчику сделать возможность самому создавать таблицы, и тогда программа диамически расширяемая будет, так он посмотрел как это будет выглядеть, и сказал не надо ему расширяемость, пусть будет все статически. А я уже подписался на работу, и 2 касаря баксов снял..... Так уже потратил, отказываться нереально. А делать придется, вот и подумал, может можно как то по проще сделать
Чтоб постоянно не делать этого

Цитировать
клиент -> кодовое слово -> сервер -> (неведомая зверушка, не волнующая клиент) -> получение данных -> построение модели.


Название: Re: Стандартный способ клиент-сервер-БД
Отправлено: Bepec от Октябрь 28, 2012, 16:35
Это называется что? личные подробности жизни автора.

Так что потихоньку клепай 300 таблиц, стараясь успеть в срок )


Название: Re: Стандартный способ клиент-сервер-БД
Отправлено: Igors от Октябрь 28, 2012, 16:50
Это называется что? Это называется жадность. А если ещё и сроки прижатые, то недостаток ума.
Ну вот не надо углубляться в подробности личной жизни (так неосторожно раскрытые автором). Где и с кем он пробухал эти деньги - его личное дело.

Непонятно что его смущает - в любом случае ID (ключевое слово) неизбежно и никакой ошибки он пока не сделал (не успел)


Название: Re: Стандартный способ клиент-сервер-БД
Отправлено: CJ1 от Октябрь 28, 2012, 17:01
Буду клепать......