Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.008 c
1-88863
Charlz
2002-06-17 18:09
2002.06.27
Как заменить символы в строке


7-89055
michael_B
2002-04-02 18:18
2002.06.27
Как свернуть все запущенны проги(кроме моей)


1-88792
TRUP
2002-06-16 13:31
2002.06.27
Как скрыть курсор?


1-88823
Darij
2002-06-17 05:47
2002.06.27
Запуск DLL из командной строки


14-89003
keymaster
2002-05-24 22:50
2002.06.27
Win XP - набор глюков!!!




   Наверх