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

Вниз

как обновить только одну запись   Найти похожие ветки 

 
abc   (2003-07-28 14:27) [0]

а не выполнять полное обновленце таблицы (TClientDataset)


 
AkaSaint ©   (2003-07-28 18:03) [1]

Не сразу я додумался до этого :-)
CDS: TClientDataSet;
1) Запоминаешь значение первичного ключа нужной записи
2) Удаляешь эту запись из CDS
3) CDS.MergeChangeLog (мы не хотим удалять ее из БД)
4) CDS.PacketRecords := 1;
5) На клиенте в обработчике BeforeGetRecords загоняешь значение первичного ключа в OleVariant.
5) Вызываешь GetNextPacket (FetchOnDemand установлен в False)
6) На сервере приложений в BeforeGetRecords провайдера извлекаешь из OleVariant значение первичного ключа и позиционируешься на нужную запись в наборе данных.
7) Обновленная запись находится в CDS.
Если тебе нужно также обновить одну запись на сервере приложений из БД, и ты используешь ADO, тогда метод Resync (см. MSDN).


 
abc   (2003-07-28 18:45) [2]

однако =)


 
abc   (2003-07-28 18:46) [3]

спасибо!


 
Polevi ©   (2003-07-28 20:44) [4]

TClientDataset.RefreshRecord


 
Polevi ©   (2003-07-28 20:45) [5]

также можно глянуть TDatasetProvider.InternalRowRequest


 
AkaSaint ©   (2003-07-28 21:41) [6]

2Polevi:Я даже забыл про RefreshRecord. У меня в CB6 он не работает.


 
abc   (2003-07-29 14:44) [7]

спасибо, а TClientDataset.RefreshRecord что то и не хочет



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
14-68455
Pat
2003-08-02 23:17
2003.08.21
Ура!! Сегодня женился... :)


4-68595
dimonf
2003-06-19 12:29
2003.08.21
Как считать из ресурса иконку с параметрами 16x16 8bit???


1-68396
S@shka
2003-08-07 13:58
2003.08.21
Потоки и глобальные переменные


4-68581
nikkie
2003-06-15 00:50
2003.08.21
TimedMessageBox


6-68423
prorok2
2003-06-16 10:07
2003.08.21
Сохранение текстового файла