Подпишись на новости Подпишись на Twitter

Зарабатывать на Adsense 10000$ в месяц и купить себе землю и дом и пахать и пахать как конь в огороде.. вот оно счастье..

23rd
Дек

Как сохранить позицию в таблице после обновления (Delphi) ?

Автор: jkeks | Рубрика: Новости

Шли годы и я нашел как можно сделать Requery без потери позиции и без создания дурацих циклов. Собственно в Delphi даже 7 все уже давно есть.

Разработка программ для Водоканала

Код очень простой:

position2:=GetScrollPos(Form1.DBGridEh1.Handle, SB_VERT); //поза таблицы
position:=Form1.ADODataSet1.GetBookmark; //поза указателя
Form1.ADODataSet1.Requery(); //запрос
Form1.ADODataSet1.GotoBookmark(position); //вернем позу указателя
SetScrollPos(Form1.DBGridEh1.Handle, WM_VSCROLL, position2, True); // вернем позу таблицы

Тут есть важный момент, положение таблицы и указателя – это разные вещщи. С каждой работать в отдельности. Вообще этот код очень некрасив нет что не проверяет разного рода исключений, а надо бы, тем более если мы меняем сортировки, удаляем или фильтруем БД. А если просто апдейтим то можно и так.

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.