Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не корректная работа BookMark-ов на ClientDataSet-е [D5, MSSQL]


Азазелло ©   (2002-09-27 09:33:00) 

Всем доброго времени суток!
D5 + ADO + MSSQL2000

Использую связку TADODataSet->TDataProvider->TCLientDataSet. После постинга записи в ClientDataSet мне необходимо получить идентификатор записи, который объявлен как Identity на сервере. Методу Resync - у ClientDataSet-а не работает : ( Refresh же, соответственно, переоткрывает датасет и я теряю добавленную позицию, поскольку у меня стоит сортировка. Пытался использовать BookMark-и так :
With cds_DataSet Do
Begin
Try
Post;
ApplyUpdates(-1);
Except
<ругаюсь и сваливаю>
End;
BookMark:=GetBookMark;
Refresh;
GoToBookMark(BookMark);
FreeBookMark(BookMark);
End;

Но букмарки почему-то срабатывают из 8 раз раза 3-4. В дальнейшем позиционируются не пойми куда.

Кто подскажет, как мне получить идентификатор добавленной записи.. желательно не прибегая к использованию хранимой процедуры с возвратом Ident_Current. Вообще-то хочется получать идентификатор без использования серверной части и оставаться на той же записи, что была добавлена.

С уважением, Игорь.


Азазелло   (2002-09-27 16:52:00) [1]

В том-то и дело, что его нет..


Johnmen   (2002-09-27 09:53:00) [2]

1. То, что букмарк так себя ведет - совершенно законно и объяснимо...
2. Если есть еще одно уникальное поле кроме ID, то можно использовать это обстоятельство...


Наверх

Титульная страница Поиск, карта сайта Написать письмо