Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обновление только изменившихся записей. [D6, ACCESS2000, ADO]


Verq ©   (2002-06-11 22:32:00) 

Пробовал найти в форуме, не нашёл, странно, думал распространённая проблема.
Извиняйте за глупенький вопрос, но всё же.
Имеется база данных Access, к ней организовано подлючения
через ADO. Есть два запроса и соотвественно две формы с
гридами к одной таблице (нужно так, именно два запрооса к одной таблице).
Как сделать чтобы после изменения данных в одном гриде они изменились и во
втором, т.е. чтобы набор данных обновился, но не с помощью Refresh, т.к.
всё будет очень долго записей возвращается в районе 5 тысяч, нельзя после
каждого изменения обновлять Reshem"ем. Access это умеет, сразу обновляет только
эту одну изменившуюся запись, вот. Пробовал играть с курсорами, но
может что-нить не доиграл (с расположением и типом), в общем не получилось
:( Мож кто поможет? Используется база Access 2000 под Win2K (MDAC 2.6).


Вячеслав   (2002-06-12 17:21:00) [1]

Если пользоваться КлиентДатаСетом, то проблема на корню отпадает.
Там специальное свойство есть для проверки изменений.


Verq   (2002-06-12 17:06:00) [2]

Устанавливаем букмарки в одном наборе записей (один запрос), а в другом гриде представлен тот же набор данных, но формируемый другим запросом (сделано с целью раздельной навигации, а также различных методов представления в гридах+в одном из гридов внизу сумма есть и т.д.) и что же делать, ведь Рефреш одного набора не приведёт к рефрешу его во втором? Может я что-то не так понял? Можно поподробнее, если не тяжело.


Delirium   (2002-06-12 15:04:00) [3]

Пользуйся закладками:

var P:Pointer;
...
if not (ADOTable1.State in [dsEdit,dsInsert]) then
begin
P:=ADOTable1.GetBookmark;
ADOTable1.Refresh;
if ADOTable1.BookmarkValid(P)
then ADOTable1.GotoBookmark(P);
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо