Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.06.27;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
3-88759
SuperVK
2002-06-03 07:10
2002.06.27
Реакция TDBNavigator на программное изменение TDBRichEdit


8-88963
Pete
2002-02-18 15:34
2002.06.27
Помогите реализовать...


1-88796
TRUP
2002-06-16 13:29
2002.06.27
Как очистить папку TEMP?


1-88849
agent_007
2002-06-14 09:57
2002.06.27
Вставка текста в прилож-е в кот-м в данный момент наход-ся курсор


3-88738
kserg@ukr.net
2002-06-04 11:04
2002.06.27
ADO - Срочно нужна помощь.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский