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

Вниз

Refresh одной записи в ClientDataSet   Найти похожие ветки 

 
alsn   (2002-05-29 15:36) [0]

Здравсвуйте.
Использую TClientDataSet + TDataSetProvider + TAdoDataSet + MSSQL.
Источник данных для AdoDataSet - весьма долгоиграющая хранимая процедура.
Вопрос: Как обновить ТОЛЬКО ОДНУ запись в ClientDataSet. В MSSQL для этого
все подготовлено: создана отдельная процедура, возвращающая только одну
запись в рекордсете.
Заранее спасибо.


 
Romkin ©   (2002-05-29 16:08) [1]

Положи TClientDataSet в RemoteDataModule и собирай там то, что нужно клиенту, а провайдера цепляй к этому датасету


 
Автор   (2002-05-29 17:02) [2]

Возможно я не достаточно подробно все описал. Итак, есть две процедуры в MSSQL. Одна отработав ~2 минуты возвращает ~ 5 тыс. записей. Вторая - только одну из этих 5 тысяч.
В клиенте: TAdoDataSet + TDataSetProvider + TClientDataSet. Все в одном exe файле. Никаких RemoteDataModule и MIDAS-серверов тут нет.
Теперь следующая ситуация: Одна (или несколько) из упомянутых выше 5-и тысяч записей изменилась. Мое приложение знает ID этой записи (этих записей). Неважно где это произошло: в другом окне, из другого приложения или вообще с другого компьютера. Важно другое: что нужно сделать в TDataSetProvider-е и/или в TClientDataSet-е чтобы эта запись обновилась. На сервере для этого создана процедура, которая по ID записи выдаст все поля из ее таблицы.

Заранее Списибо.

P.S. Если сделать ClientDataSet.RefreshRecord, то это приведет к повторному переоткытию источника данных для TDataSetProvider-а, т.е. к повторному вызову первой процедуры и повторной прокачке 5 тыс. записей.


 
oss   (2002-05-29 17:46) [3]

А если нет "RemoteDataModule и MIDAS-серверов" то для чего
TDataSetProvider + TClientDataSet ??
А для TAdoDataSet попробуй курсор на стороне сервера поставить
и апдейт по условию WHERE на DataSetProvidere. либо делать Requery у клиетдатасета, тока прочто про Requery в хелпе :)


 
Romkin ©   (2002-05-29 18:17) [4]

Тогда просто бери эту одну запись в другой TADOQuery, потом сливай ручками со своей cds, и вызывай MergeChangeLog (предупреждаю - после этой команды ChangeCount = 0, так что если были изменения...)


 
Sam ©   (2002-06-03 19:05) [5]

Resync


 
Sam ©   (2002-06-03 19:13) [6]

ADODataSet1.Recordset.Resync


 
Alex Ignatenko   (2002-06-04 13:41) [7]

Куда то пропал мой первый ответ. Ну ладно, повторю еще раз.

Для обновления одной записи рекордсета нужно использовать динамическое свойство ResyncCommand. Подробнее смотри MSDN или статью об АДО http://www.delphikingdom.com/helloworld/ado03.htm



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

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

Наверх




Память: 0.48 MB
Время: 0.011 c
14-89001
antistatic
2002-05-25 20:56
2002.06.27
Где можно бесплатно зарегить сайт в зоне .RU, .NET или .COM


3-88704
Slym
2002-06-03 07:11
2002.06.27
Имеются 3 связанные по цепочке по MasterSource таблицы


7-89054
Remal
2002-04-02 12:35
2002.06.27
Как NTвый taskmanager узнает загрузку процессора....


14-89034
Loxly
2002-05-25 18:28
2002.06.27
Сколько стоит то, что мы берем бесплатно?


1-88854
Дельфятник
2002-06-17 17:25
2002.06.27
Можно ли уменьшить размер заголовка TTabSheet, и если да, то как?