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

Вниз

TClientDataSet   Найти похожие ветки 

 
Yngwar ©   (2002-05-30 20:54) [0]

Кто-нибудь знает как в TClientDataSet отличить состояния: когда данные загружены из базы, а когда из файла?
Если данные загружены LoadFromFile и потом сделать Refresh, то вылетает ошибка.


 
Deniz ©   (2002-05-31 09:06) [1]

А что пользователь сам пишет программу?
Заведи переменную.


 
Mike_Goblin ©   (2002-05-31 10:41) [2]

Refresh обновляет данные датасета, беря их от провайдера. При этом в логе изменений датасета не должно быть изменений. (а то что же это пользователь наделал изменений, а мы их убьем)

Refresh вылетает, потому что есть несохраненные изменения (при загрузке из файла все строки считаются несохраненными, тк откуда бедному датасету знать что творилось в базе)

Вот кусок из хелпа
A similar method, Refresh, replaces the entire contents of the client dataset with the current values supplied by the provider. Unlike RefreshRecord, which leaves unapplied changes in the change log, Refresh raises an exception when the change log is not empty.

А вот кусок исходника VCL InternalRefresh
CheckBrowseMode;
if ChangeCount > 0 then
DatabaseError(SRefreshError, Self);
Вот он тебе и генерирует исключение

Отсюда вывод, не надо рефрешить когда есть изменения


 
Yngwar ©   (2002-05-31 18:40) [3]

Ошибка вылетает и после ApplyUpdates и даже если никаких изменений не делалось...


 
Slava ©   (2002-05-31 19:19) [4]

> Yngwar

ApplyApdates что возвращает?


 
Yngwar ©   (2002-06-01 20:08) [5]

ApplyUpdates отрабатывает нормально, все изменения сохраняются в базе. После Active=False; Active=True; можно снова делать Refresh. А вот до этого нельзя.


 
Mike_Goblin ©   (2002-06-03 11:50) [6]

Какой результат (0 или положительное число) возвращает ApplyUpdates?
А ChangeCount чему равно при вызове Refresh?



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
1-88945
DeepProg
2002-06-10 17:22
2002.06.27
Откладывание выполения задания


1-88906
greenrul
2002-06-14 18:26
2002.06.27
Как в CoolBar засунуть меню?


4-89068
V_V
2002-04-28 18:34
2002.06.27
WM_ACTIVATE


14-89017
OOPS!!
2002-05-23 15:25
2002.06.27
Photoshop, Winamp, CorelDraw, 3DStudio, Half-Life, Quake, ACDSEE.


3-88700
yozhik
2002-05-30 15:16
2002.06.27
Сжатие базы Access