- Регистрация
- 1 Мар 2015
- Сообщения
- 1,398
- Баллы
- 155
Всем привет.
Вообщем пытаюсь синхронизировать свою локальную базу с сервером, использую при этом Restrequest,все идет нормально но только приложение зависает на время цикла.
В цикле идет перебор все данных в локальной базе и заносится по ссылке в базу.
Пытался сделать в потоке но выскакивает ошибка "Argument errore", а без потока не выскакивает.
Есть решение для улучшения скорости или хотя бы убрать зависания приложения?
спасибо за ранее за вашу помощь.
Вообщем пытаюсь синхронизировать свою локальную базу с сервером, использую при этом Restrequest,все идет нормально но только приложение зависает на время цикла.
В цикле идет перебор все данных в локальной базе и заносится по ссылке в базу.
Пытался сделать в потоке но выскакивает ошибка "Argument errore", а без потока не выскакивает.
Есть решение для улучшения скорости или хотя бы убрать зависания приложения?
спасибо за ранее за вашу помощь.
Код:
var
aggiornarichiesta: TJSONObject;
i,b: Integer;
a:TStream;
begin
FDTable1.First;
for i := 0 to FDTable1.RecordCount do
begin
if RESTRequest1.Response.StatusCode = 200 then
begin
try
RESTRequest1.ClearBody;
RESTClient1.BaseURL := 'http://localhost/loman/dati.php';
RESTRequest1.Execute;
aggiornarichiesta := TJSONObject.Create;
aggiornarichiesta.AddPair('id', FDTable1ID.Text);
aggiornarichiesta.AddPair('Materiale',
FDTable1.FieldByName('Materiale').AsString);
aggiornarichiesta.AddPair('Descripzione',
FDTable1.FieldByName('Descripzione').AsString);
aggiornarichiesta.AddPair('Quantita', FDTable1.FieldByName('Quantita')
.AsString);
aggiornarichiesta.AddPair('Treno', FDTable1.FieldByName('Treno')
.AsString);
aggiornarichiesta.AddPair('Discorta', FDTable1.FieldByName('Discorta')
.AsString);
aggiornarichiesta.AddPair('Commento', FDTable1.FieldByName('Commento')
.AsString);
aggiornarichiesta.AddPair('Creatoda', FDTable1.FieldByName('Creatoda')
.AsString);
aggiornarichiesta.AddPair('Ordinato', FDTable1.FieldByName('Ordinato')
.AsString);
RESTClient1.BaseURL := 'http://localhost/loman/Product/update.php';
RESTRequest1.ClearBody;
RESTRequest1.AddBody(aggiornarichiesta.ToString,
ContentTypeFromString('application/json'));
RESTRequest1.Execute;
FDTable1.Next;
RESTRequest1.ClearBody;
RESTClient1.BaseURL := 'http://localhost/loman/dati.php';
RESTRequest1.Execute;
finally
RESTRequest1.DisposeOf;
end;
end;
end;