|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Обновление ADOTable
Всем привет!
Начну с того что не один форм/статью я прочитал по этой проблеме, решения есть, но они без толковые. В чем суть. Имеются две копии программы (на двух разных компьютерах), обе работают с БД, которая просто лежит в общей папке. И при изменении какой либо таблицы, программа посылает сообщение по локальной сети, что собственно некая таблица изменилась необходимо обновить. И все вроде бы ничего, но сообщение посылается мгновенно, а обновляется не совсем. Если после приема сообщения не выждать 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. |