Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.29;
Скачать: CL | DM;

Вниз

Очистка кэша   Найти похожие ветки 

 
bardi   (2003-05-07 14:08) [0]

Здравствуйте.
Ситуация:Генерится Update, только по тем полям которые были изменены. Затем запрос посылается на сервер с помощью компонента TQuery. Используется так же компонент TUpdateSql( кэширование).
Вопрос? Как очистить кэш набора данных?

TAdvRXQuery(DataSet).Database.StartTransaction ;

try
ExecSQL(sqlFull); //запрос посылается на сервер
TAdvRXQuery(DataSet).Database.Commit;
//--Вот здесь необходимо очистить кэш
except
TAdvRXQuery(DataSet).Database.Rollback;

end;



Заранее спасибо.


 
Johnmen ©   (2003-05-07 14:27) [1]

Жми F1 на CommitUpdates, там таже пример есть...:)


 
Zacho ©   (2003-05-07 14:29) [2]

Не знаю, что такое TAdvRXQuery, но в стандартном TQuery есть ApplyUpdates и CommitUpdates


 
bardi   (2003-05-07 14:36) [3]

TAdvRXQuery - потомок TQuery с некоторыми добавленными свойствами
Если UpdatesPending := true и вызываем метод CommitUpdates, то
последний вызывает ApplyUpdates, что мне совершенно не нужно,
т.к. все изменения были посланы на сервер процедурой ExecSQL,
и не нужно еще раз апдейтить теже записи с помощью ApplyUpdates,
а это происходит т.к. UpdatesPending = true



 
Zacho ©   (2003-05-07 14:45) [4]


> bardi (07.05.03 14:36)

Попробуй перед CommitUpdates сделать CancelUpdates, может и прокатит :-)


 
Johnmen ©   (2003-05-07 14:54) [5]

Еще раз настоятельно рекомендую почитать про работу с кешированными НД ! Т.к. что-то не то в королевстве...:)))


 
bardi   (2003-05-07 14:56) [6]

Да метод CancelUpdates очищает кэш, но и данные возвращает до изменения, то есть для того что бы пользователь увидел внесенные им изменния , необходимо переоткрыть набор данных. А это не хотелось делать, т.к. большие запросы.


 
Zacho ©   (2003-05-07 14:58) [7]


> bardi (07.05.03 14:56)

Подключить TUpdateSQL к нужному Query и вместо ExecSQL делать ApplyUpdates.


 
bardi   (2003-05-07 15:11) [8]

> Zacho
Да правильно. Но в моем случае это не подходит, т.к. иногда выполняется UpdateSQL, в др. случае должно выпоняться через компонент TQuery. Может кто нибудь знает прямые функции BDE.


 
Zacho ©   (2003-05-07 15:14) [9]


> bardi (07.05.03 15:11)

Решение "в лоб" - сделай своего наследника TQuery, в котором CommitUpdates не будет вызывать ApplyUpdates.


 
bardi   (2003-05-07 15:23) [10]

> Zacho
Да хорошо.А кэш все равно надо очищать, не хорошо это когда кэш забивается.



Страницы: 1 вся ветка

Текущий архив: 2003.05.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
6-94989
azra3L
2003-04-01 09:06
2003.05.29
winsock


1-94909
prof
2003-05-17 11:54
2003.05.29
копирование файлов


1-94857
Identifikator Borna
2003-05-20 10:11
2003.05.29
Поиск в текстовых файлах


14-95024
kull
2003-05-08 11:07
2003.05.29
Надо компонент для построения отчетов...


14-95087
race1
2003-05-10 14:26
2003.05.29
Cinema 4D