Главная страница
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.011 c
1-88793
TRUP
2002-06-16 13:31
2002.06.27
Как очистить корзину?


1-88825
cyborg
2002-06-14 12:58
2002.06.27
Создатьь файл


1-88795
Demon-777
2002-06-16 00:15
2002.06.27
PopupMenu


1-88856
Vasya!
2002-06-17 18:32
2002.06.27
Где можно найти инфу, как юзать LISTVIEW?


3-88748
PSZ
2002-06-03 12:52
2002.06.27
Есть ли бесплатные компоненты для работой с БД без BDE ?