![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем привет!
Начну с того что не один форм/статью я прочитал по этой проблеме, решения есть, но они без толковые. В чем суть. Имеются две копии программы (на двух разных компьютерах), обе работают с БД, которая просто лежит в общей папке. И при изменении какой либо таблицы, программа посылает сообщение по локальной сети, что собственно некая таблица изменилась необходимо обновить. И все вроде бы ничего, но сообщение посылается мгновенно, а обновляется не совсем. Если после приема сообщения не выждать 3-4 секунды данные не обновиться вообще. Использованные компоненты ADOconnect, ADOTable, DataSourse, DBgridEh. База данных Access. Обновлять пытался так: Код:
form1.ADOTable.Active:=false; form1.ADOTable.Active:=true; form1.DataSource1.DataSet.Refresh; form1.DataSource1.Enabled:=false; form1.DataSource1.Enabled:=true; form1.ADOTable.Refresh; form1.DBGridEh1.Refresh; Этим кодом который нашел в интернете: Код:
procedure ReOpenDataSet(DataSet: TDataSet; StayActiveRecord: boolean = true);
begin
with DataSet do
begin
if StayActiveRecord then
Tag := Fields[0].AsInteger;
DisableControls;
Close;
Open;
if StayActiveRecord then
Locate(Fields[0].FieldName,Tag,[]);
EnableControls;
end;
end;Но результата к сожаление нет . Обновляет, но так же 3-4 секунды - это долго. Мне посоветовали использовать компонент ADOQeury мол с ним таких проблем нету, да я сам где читал, что кому то это помогло. Хорошо что не весь проект переписал, а только к одной таблице его поставил, потому что результат оказался точно таким же. Пробовал я запускать обе программы на одном ПК, да бы исключить проблему с сетью. Исключил. Что собственно хотелось бы узнать, как грамотно/правильно обновить данные. Хотя бы с задержкой 1-1,5 сек. Или может дело еще в чем? Надеюсь на вашу помощь. Спасибо. И еще кое что, если может у кого есть хорошие статьи или книги по этой проблеме, ткните. Просто хотелось бы знать, почему вообще так происходит и разобрать по поподробнее. Последний раз редактировалось listerine, 28.05.2013 в 17:51. |