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

Вниз

Перемещение в таблице   Найти похожие ветки 

 
Ирина   (2005-07-22 09:52) [0]

Просьба не закрывать сразу мой вопрос, я не могу получить ответ. При нажатии кнопки надо поместить курсор на определенную запись в таблице, причем местоположение этой записи меняется, т.к. перед ней время от времени добавляются записи. (Это справочник, состоящий из двух разделов. Каждый раздел пополняется периодически. Надо устанавливать курсор при нажатии кнопки на начало второго раздела)


 
Anatoly Podgoretsky ©   (2005-07-22 10:01) [1]

Locate


 
Digitman ©   (2005-07-22 10:11) [2]


> на определенную запись в таблице


каков же критерий "определенности" ?


 
Digitman ©   (2005-07-22 10:19) [3]

var
 bkmrk: TBookmark;
..

//получим закладку на нужную (текущую) запись
bkmrk := DataSet.GetBookmark;
try

//вставляем, удаляем, обновляем разные записи
//"гуляем" по НД туда-сюда как нам вздумается

 DataSet.Insert;
 ..
 DataSet.Post;

 Dataset.First;
..
 Dataset.Last;
.. и т.д. и т.п.

finally
//нагулялись вдоволь
//теперь возвращаемся к той записи, с которой ушли
DataSet.GotoBookmark(bkmrk);
//и не забываем уничтожить закладку, если она нам более не нужна
DataSet.FreeBookmark(bkmrk);
end;


 
msguns ©   (2005-07-22 10:52) [4]

Метод Digitman ©   (22.07.05 10:19) [3] имеет один недостаток: вероятность утери букмаркой своей валидности, если надо перечитать датасет при многопользовательском доступе.
Поэтому надо либо включить GoToBookMark в защищенный блок, либо проверять ее валидность, либо (ИМХО-лучше всего) использовать ID записей, который можно сохранить в тэге детасета перед "прогулкой"


 
msguns ©   (2005-07-22 10:52) [5]

Удалено модератором


 
evvcom ©   (2005-07-22 11:05) [6]


> Просьба не закрывать сразу мой вопрос

Ничего удивительного. Прошлые вопросы были с неоформленной темой.


 
зигмунд .Ф ©   (2005-07-23 23:45) [7]

отключаешь прорисовку таблицы (для скорости)

while not tabl.Eof do
if tabl.key.AsInteger=x then exit else
tabl.Next;

и вклячаешь ее обратно...

про TBookmark уже писали


 
msguns ©   (2005-07-24 09:18) [8]

>зигмунд .Ф ©   (23.07.05 23:45) [7]

Так делать НЕ надо.


 
RusLAN_   (2005-07-25 15:26) [9]

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

>зигмунд .Ф ©   (23.07.05 23:45) [7]
не путайте людей :))
в таких случаях давайте советы как в [1]



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

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

Наверх




Память: 0.48 MB
Время: 0.049 c
5-1095460856
Чайник
2004-09-18 02:40
2005.09.04
Не понял! Цвета палитры виндовс (типа clBtnShadow и т.д)


14-1122567008
Knight
2005-07-28 20:10
2005.09.04
Где можно недорого остановиться в Москве недели на две?


9-1115811379
grouzd[E]v
2005-05-11 15:36
2005.09.04
OGL - Again Arrays


1-1124037287
забыл [кто-то зарегил мой ник]
2005-08-14 20:34
2005.09.04
TrayIcon компонент


14-1123820410
Black_phoenix
2005-08-12 08:20
2005.09.04
Переход с Delphi на VIsual C++ Net 2002