Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.07.2016, 08:58   #1
Elektrik_25
Новичок
Джуниор
 
Регистрация: 22.07.2016
Сообщений: 1
По умолчанию Клиент-серверное приложение. Предача данных из MySQL по сети.

Добрый день. Подскажите, как ещё можно реализовать следующую задачу:
Есть база данных mysql в которую стекаются различные данные телеметрии. Необходимо написать клиент-серверное приложение которое после авторизации того или иного клиента, выдавала ему определенную выборку из БД.

В голову пришла только одна идея. Реализовал через сокеты:

На сервере:

- авторизирую клиента по имени и паролю;
- делаю нужную выборку;
- создаю пакет с данными:

Код:
...

for (int i = 0; i < n ; ++i) {                
		d1 += ADODataSet4->FieldByName(column1)->AsString + "%";
		d2 += ADODataSet4->FieldByName(column2)->AsString + "%";
		d3 += ADODataSet4->FieldByName(column3)->AsString + "%";
    
	        ADODataSet2->Next();
	}
	AnsiString data = "|" + d2 + "|" + d3 + "|";
...
- Отправляю через:

Код:
 Socket->SendBuf (...)
На клиенте:

- Ищу разделители;
- Заношу в Grid:
Код:
 ... ClientSocket1Read (...)

{
if (buf[i] == '|')

заношу данные в Grid;

}
Все вроде работает, но только когда передаваемых данных немного. При увеличении объема данных (свыше 2000 записей) программа начинает выполняться очень долго, и раз через раз зависает.

Подскажите, может быть есть какие-то другие технологии для передачи больших объемов данных от сервера к клиенту? Как то же работают такие программы как: системы контроля доступа: "ОрионПро" или "Сфинкс", система "1С" где данные от сервера к клиенту передаются за считанные секунды, не смотря на то что объем некоторых таблиц превышает 1,2 и более миллионов записей.
Elektrik_25 вне форума Ответить с цитированием
Старый 22.07.2016, 09:08   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
где данные от сервера к клиенту передаются за считанные секунды, не смотря на то что объем некоторых таблиц превышает 1,2 и более миллионов записей.
Передается не весь миллион записей, а количество потребное ЭКРАНУ компьютера-клиента для показа пользователю.(ну или чуток больше).
Все РАСЧЕТЫ для которых нужно больше данных, выполняются на сервере без передачи данных, за исключением НЕМНОГОчисленных результатов обработки потребных пользователю.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Базы данных. Клиент-серверное приложение. JeyKip C# (си шарп) 14 12.04.2016 16:23
Клиент-серверное приложение, работающее с базой данных Mihail2012 Фриланс 2 13.04.2012 15:51
Клиент-серверное приложение MySQL Vashkin БД в Delphi 2 13.01.2012 11:27
клиент/серверное приложение + MySQL Vohakisa БД в Delphi 3 19.05.2010 11:20
Возможно-ли Клиент-серверное приложение типа Клиент(Pascal) а сервер(CGI)? Demol Работа с сетью в Delphi 1 21.04.2009 16:18