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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2015, 16:56   #1
sg-ua
Пользователь
 
Регистрация: 13.04.2013
Сообщений: 21
По умолчанию Обновления дистанционно (XE8, android)

есть приложения которое формулирует списки с mysql по запросам, мне нужно его переделать, так что бы ускорить ответ приложения...у меня все запросы через интернет. Мне нужно что бы как можно меньше приложения связывалось с сервером. Есть такая идея, раз загрузить базу данных и больше не загружать её(то-есть делать запросы локально) до той поры когда её не изменят и не дадут запрос всем устройствам обновить БД...можете посоветовать в каком направлении искать?
навожу части кода что бы понять суть приложения.

первая страница
Код:
procedure TForm1.TabItem1Click(Sender: TObject);
var
LItem: TListViewItem;
     begin

        ListView1.ClearItems();
        MyConnection1.Connected:= true;
        MyQuery1.Active:=false;
        MyQuery1.SQL.Text:='select * from type';
        MyQuery1.Active:=true;
        while (not myQuery1.Eof) do
          begin
            LItem := ListView1.Items.Add;
	          LItem.Text:=MyQuery1.FieldByName('name_type').AsString;
            MyQuery1.Next;
          end;
при нажатии на любую строчку, делается запрос
Код:
TabItem2.Visible:=True;
    ListView2.ClearItems;
    MyQuery1.Active:=false;
    MyQuery1.SQL.Text:='select * from dish, type where type.id_type=dish.id_type and type.name_type= :parType';
    MyQuery1.Params.ParamByName('parType').Value:=ListView1.Selected.Text;
    MyQuery1.Active:=true;
    IdHTTP1 := TIdHTTP.Create(Application);
    ms := TMemoryStream.Create;
     while (not myQuery1.Eof) do
          begin
            LItem := ListView2.Items.Add;
	          LItem.Text:=MyQuery1.FieldByName('name_dish').AsString;
            LItem.Detail:='Состав: '+ MyQuery1.FieldByName('struktyre').AsString;
            IdHTTP1.Get(MyQuery1.FieldByName('image').AsString , ms);
            LItem.Bitmap.LoadFromStream(ms);
            MyQuery1.Next;
          end;
    ms.Free;
    IdHTTP1.Free;

Последний раз редактировалось sg-ua; 04.06.2015 в 16:59.
sg-ua вне форума Ответить с цитированием
Старый 04.06.2015, 17:45   #2
xxbesoxx
Участник клуба
 
Аватар для xxbesoxx
 
Регистрация: 10.08.2010
Сообщений: 1,396
По умолчанию

Цитата:
раз загрузить базу данных и больше не загружать её(то-есть делать запросы локально)
в таком случае надо писать обычный фильтр и он будет как раз для тех записи который уже в DataSet -е
xxbesoxx вне форума Ответить с цитированием
Старый 04.06.2015, 18:17   #3
sg-ua
Пользователь
 
Регистрация: 13.04.2013
Сообщений: 21
По умолчанию

я еще не работал с DataSet..он позволит обновлять данные, когда это нужно?...я тут почитал, а может лучше сделать через xml и загрузить его в приложения и как то изменять его когда нужно через интернет или это не реально?
sg-ua вне форума Ответить с цитированием
Старый 05.06.2015, 08:26   #4
xxbesoxx
Участник клуба
 
Аватар для xxbesoxx
 
Регистрация: 10.08.2010
Сообщений: 1,396
По умолчанию

Цитата:
когда это нужно?...
Фильтр работаеть на то данных который есть уже DataSet -е . А запрось SQL.Text:='select * from type'; отправляется на сервере .
xxbesoxx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TeeChart Pro for Delphi XE8 rainbow Компоненты Delphi 8 03.06.2015 14:48
Как загрузить картинку с интернета(xe8) sg-ua C++ Builder 1 21.05.2015 20:05
Обновления Windows dariya.95 Windows 9 16.09.2013 17:21
Обновления Flassher БД в Delphi 0 29.05.2013 18:56
Плачу за обучение С++ дистанционно valerka92 Помощь студентам 0 03.10.2011 22:20