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

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

Помогите разобраться с методом BookmarkValid у TADOQuery [D7, MSSQL]


ru_efim ©   (2005-08-23 10:41:00) 

При удалении записи выполняется код:
with ADOQuery1 do
 begin
   B:= GetBookmark;
   Close;
   Open;
   if BookmarkValid(B) then
     GotoBookmark(B)
   else
     Last;
 end;
(ADOQuery через TADOConnection "подключен" к базе на MsSQL Server)
Если запись не последняя в наборе то все нормально, если же последняя то при выполнении оператора BookmarkValid генерируется исключение класса EOLEExpection "Недопустимая закладка". Не пойму GetBookmark выполняется, с помощью BookmarkValid как раз и проверяет "верна" ли закладка. В чем я ощибаюсь? И как правильно?


Desdechado   (2005-08-23 13:55:00) [1]

букмарк валидный только между Open и Close
а так это просто адрес на некий участок памяти


ru_efim   (2005-08-23 11:24:00) [2]

Assigned(B) возвращает Trye. Так тоже не получается?


sniknik   (2005-08-23 11:24:00) [3]

после Close; Open; букмарк содержит "мусор" чисто случайно который може содержать правильный адрес... на надеятся на это не желательно.
проверка же проверяет чтото этому адресу чтото есть, а не то, что он принадлежит валидной структуре.


Reindeer Moss Eater   (2005-08-23 10:47:00) [4]

перед вызовом BookmarkValid(B) проверяй Assigned(B)


Наверх

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