![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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;
ты это где вычитал?