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

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

Недопустимая закладка [D6, MsAccess]


Vir ©   (2005-07-26 00:27:00) 

Работая с MsAccess через Ado, так вот заметил что подобный код


procedure ReQuery(DataS:TCustomADODataSet);
var bmk:TBookmark;
begin
bmk:=DataS.GetBookmark;
try
DataS.Requery;
finally
if DataS.RecordCount>0 then
 DataS.GotoBookmark(bmk);
except
DataS.FreeBookmark(bmk);
end;

строка DataS.GotoBookmark(bmk); выдает ошибку
"Недопустимая закладка" если запись на помеченная закладкой стояла в списке последней и после Refresh была удаленна.
Т.е. если запись находилась не в конце базы и была удалена, код работает. Может быть это частный случай но у меня именно так.

Как избежать ошибки с закладкой?

Причем совершенно не важно


Desdechado   (2005-07-26 11:23:00) [1]

Закладки имеют смысл только до закрытия датасета. После переоткрытия это просто мусор, иногда похожий на что-то...


Slym   (2005-07-26 10:05:00) [2]

if DataS.BookmarkValid(bmk) then ...


Johnmen   (2005-07-26 09:07:00) [3]

То, что закладка укажет хоть на какую-нибудь запись после переоткрытия набора данных - чистая случайность. Но очень часто именно так и бывает, ибо освободившаяся из под НД память тут же им же и заполняется...


Anatoly Podgoretsky   (2005-07-26 09:02:00) [4]

Не используй букмарки, это кривой костыль. Для перемещения есть Locate и первичные ключи.


Наверх

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