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

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

Refresh таблицы


Sergey ©   (2011-06-17 13:00:00) 

Подскажите, как запомнить номер активной записи в таблице и вернутся на нее после рефреша таблицы?
tb_tz.RecNo - Я так понимаю номер активной записи.

Делаю

 a:=frm_resourse.tb_tz.RecNo;
 frm_resourse.tb_tz.Refresh;
 frm_resourse.tb_tz. RecNo :=a;

В итоге активной становится первая запись таблицы.


Ega23   (2011-06-17 15:58:00) [1]


> Ты мне скажи, что меняется от твоих слов?


Да вобщем-то ничего.


> Естественно ключ спасёт. Той может уже и не быть или другие
> добавились до неё, например. И как тогда понять та она или
> другая.


Иметь везде уникальный первичный ключ. Это спасёт ОРД.


Inovet   (2011-06-17 15:46:00) [2]

> [7] Ega23 ©   (17.06.11 15:03)
> идея на неё "встать" после обновления НД - бессмысленна.

Естественно ключ спасёт. Той может уже и не быть или другие добавились до неё, например. И как тогда понять та она или другая.


Вариант   (2011-06-17 15:37:00) [3]


> Ega23 ©   (17.06.11 15:25) [13]

Ты мне скажи, что меняется от твоих слов?

1)В дельфи в хелпе написано неправильно? (да)(нет)
2)Надо называть текущая? (да)(нет)(возможно)
3)Далее отфильтровал ты, RecNo = 1 теперь у другой записи, указывает RecNo на другую запись -> и что дальше?
Это  другая запись не является активной? Или текущей?  (да)(нет)


Ega23   (2011-06-17 15:25:00) [4]


> Определение термина RecNo хелпе дельфи. и не имеет отношение
> ни к сортировке ни к фильтрайии.


Имеет. Я получил НД. Запомнил RecNo (допустим - самая первая запись). Теперь к DataSet применил фильтр. Данная запись (которая была первой) при текущем фильтре не отображается. Но "первая" запись-то всё равно есть. Уже другая.
А ещё один фильтр наложим - опять всё поменяется непойми как.
А некоторые DataSet можно ещё и пересортировать.


Вариант   (2011-06-17 15:19:00) [5]


> Вариант   (17.06.11 15:17) [11]

Сорри за кучу орфографических ошибок, раздавил очки, сижу почти в тумане:-)


Вариант   (2011-06-17 15:17:00) [6]


> Ega23 ©   (17.06.11 15:11) [10]

Ты о чем?
Определение термина RecNo хелпе дельфи. и не имеет отношение ни к сортировке ни к фильтрайии. Тем более что в некоторых потомках датасетов оно вообще не реализовано (дает всегда -1), так что не имеет значение ни как текущая ни как активная/ А искать надо  Locate по ключу , я с этим согласен
> Вариант   (17.06.11 15:10) [9]


Ega23   (2011-06-17 15:11:00) [7]


> Indicates the active record in the dataset.


Это да. А сортировка? А фильтрация?
Не всё так просто в Датском королевстве.


Вариант   (2011-06-17 15:10:00) [8]

И согласен с Ega23


Вариант   (2011-06-17 15:08:00) [9]


> oldman ©   (17.06.11 13:06) [3]

Зачем же сразу и бред?

Delphi Help

TDataSet.RecNo
Indicates the active record in the dataset.

В дельфи  по мне так, что активная, что текущая - одно и то же. В .NET используют "текущая", в рельсах "активная"... Думаю это не суть важно, смысл один.


Ega23   (2011-06-17 15:03:00) [10]


> Да ладно...

Не "да ладно", а "так точно".
Если он не содержит такого ключа, то мы не можем однозначно идентифицировать конкретную запись. А это значит, что идея на неё "встать" после обновления НД - бессмысленна.
При пересортировке (на клиенте) спасёт TBookmark. Но в случае рефреша - уже ничего не спасёт.


oldman   (2011-06-17 14:59:00) [11]


> Ega23 ©   (17.06.11 14:54) [5]
> Набор данных долженсодержать уникальный ключ


Да ладно...


Ega23   (2011-06-17 14:54:00) [12]


> Подскажите, как запомнить номер активной записи в таблице
> и вернутся на нее после рефреша таблицы?


Набор данных должен содержать уникальный ключ (либо одиночный, либо составной). Соответственно, запоминаем значение ключа текущей записи. После рефрешим набор данных и пытаемся сделать Locate. Если нашёл - та запись становится текущей. Не нашёл - текущей остаётся первая запись (если НД не пустой, конечно)


Sergey   (2011-06-17 13:37:00) [13]

Спасибо.


oldman   (2011-06-17 13:06:00) [14]


> tb_tz.RecNo - Я так понимаю номер активной записи.


не активной, а текущей
понятие "активная запись" забудь, как бред


oldman   (2011-06-17 13:05:00) [15]

MoveBy


oldman   (2011-06-17 13:02:00) [16]


>  frm_resourse.tb_tz. RecNo :=a;


ты это где вычитал?


Наверх

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