![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
=Bookmark= и [D6]
Drowsy © (2008-09-17 12:36:00)На форме грид, связанный с большой (по количеству записей)
таблицей.
При переоткрытии таблицы грид иногда нормально реагирует на
"восстановление закладки", а иногда "сбрасывает" текущую запись в начало. Почему?
with (Datasource.Dataset as tpFIBDataSet) do
try
locBookmark := GetBookmark;
DisableControls;
........
........
Close;
........
........
finally
if not Active then Open;
EnableControls;
GOTOBookmark (locBookmark);
FreeBookmark (locBookmark);
end;
Правильный$Вася (2008-09-17 16:29:00) [1]
> Обещаю впредь букмарки не использовать!
впадение в крайности есть признак незрелого ума
ничего личного
Труп Васи Доброго (2008-09-17 16:19:00) [2]
> Букмарки не стабильны и нормальный программист не будет
> их использовать никогда, если только не дурак.
Чё вы накинулись? Я реально был не в курсе и искренне удивлён таким высказываниям про букмарки. Я их пользовал достаточно редко, но когда пользовал, то ни разу не было сбоя(!!!) (наверное я везунчик) Я даже никогда их на валидность не проверял (теперь стыдно, но, блин, работате же..)
Обещаю впредь букмарки не использовать!
> Тоже маньяк? :)
Нет, не маньяк, но "человек базы" :) И предпочитаю всё программирование БД сводить к триггерам и ХП в самой базе, а на приложение оставляю лишь запросы с параметрами. ОЧЕНЬ удобно.
Ega23 (2008-09-17 16:15:00) [3]
> Букмарки не стабильны и нормальный программист не будет
> их использовать никогда, если только не дурак.
Я использую. Для "пробега" по датасету - самое оно. Для мультиселекта в гриде - тоже. Всё стабильно работает уже х.з. сколько лет.
Что я делаю не так?
Johnmen (2008-09-17 16:05:00) [4]
> Anatoly Podgoretsky © (17.09.08 16:01) [23]
Я думаю, это чересчур категорично.
ПРавильный$Вася (2008-09-17 16:03:00) [5]
> Anatoly Podgoretsky © (17.09.08 16:01) [23]
нам скальпель не нужен, у нас топор есть
?
Anatoly Podgoretsky (2008-09-17 16:01:00) [6]Букмарки не стабильны и нормальный программист не будет их использовать никогда, если только не дурак.
Ega23 (2008-09-17 15:55:00) [7]
> фАНТАСТИКА!!! Я вот был уверен что букмарк запоминает номер
> записи в датасете. И почему то у меня ещё ни разу запомненый
> до закрытия датасета букмарк не выбросился в мусор после
> переоткрытия. Если искомой записи нет в датасете, то, текущей
> становится запись с тем же номером, что был у запомненной.
> А вот локате точно будет "дёргаться"
Тебе просто ОЧЕНЬ сильно повезло.
Johnmen (2008-09-17 15:41:00) [8]
> Труп Васи Доброго © (17.09.08 15:23) [18]
> фАНТАСТИКА!!!
Реальность.
> прямой доступ к таблице.
Это как это?
> И желательно не прямой запрос, а через ХП!
Тоже маньяк? :)
Правильный$Вася (2008-09-17 15:38:00) [9]
> Я вот был уверен что букмарк запоминает номер записи в датасете
type TBookmark = Pointer;
в общем случае указывает, на что угодно
в частном для ADO, например, хранит номер записи как элемент рекорда
> желательно не прямой запрос, а через ХП!
не буду холиварить, но если автор не знает, что такое запрос, то уж ХП ему рановато объяснять
тем более, что далеко не во всех СУБД есть
Труп Васи Доброго (2008-09-17 15:27:00) [10]Да, добрый совет - НИКОГДА не обращайся к таблицам напрямую! Через запросы only! И желательно не прямой запрос, а через ХП!
Не буду обосновывать, просто убеждён что это правильнее, чем давать прямой доступ к таблице.
Труп Васи Доброго (2008-09-17 15:23:00) [11]
> потому что букмарк имеет смысл только в рамках одного открытого
> датасета
> переоткрытие делает букмарки инвалидными, о чем прямо написано
> в справке
фАНТАСТИКА!!! Я вот был уверен что букмарк запоминает номер записи в датасете. И почему то у меня ещё ни разу запомненый до закрытия датасета букмарк не выбросился в мусор после переоткрытия. Если искомой записи нет в датасете, то, текущей становится запись с тем же номером, что был у запомненной.
А вот локате точно будет "дёргаться"
Правильный$Вася (2008-09-17 13:54:00) [12]
> Select в грид через Create View запихивать
это перпендикулярные вещи
select можно из таблиц, вьюх, процедур делать, и в разных комбинациях
Sergey13 (2008-09-17 13:48:00) [13]> [15] Drowsy (17.09.08 13:44)
> Или как-то по другому?
Через книжку желательно.
> IBQuery
IBDataSet
Drowsy (2008-09-17 13:44:00) [14]Вопрос по технике реализации "запроса вместо табла":
IBQuery -> Select в грид через Create View запихивать?
Или как-то по другому?
Drowsy (2008-09-17 13:20:00) [15]
> это явно автору,
Точно, мне.
Буду переваривать тему запроса вместо табла....
Правильный$Вася (2008-09-17 13:17:00) [16]
> По секрету:
это явно автору, бо я много секретов знаю
Ega23 (2008-09-17 13:13:00) [17]
> юзеру не нужно больше 200 записей сразу, он не переварит их
По секрету: юзеру в определённый момент времени редко бывает нужно записей больше, чем в гриде помещается... :)
Ega23 (2008-09-17 13:12:00) [18]
> вери-вери гуд джоке
как-то ты в слове "эдвайс" аж хрен знает сколько ошибок допустил - "джоке".
Правильный$Вася (2008-09-17 13:12:00) [19]
> вери-вери гуд джоке
это не шутка, это намек на использование запросов, а не пухлых таблиц
юзеру не нужно больше 200 записей сразу, он не переварит их
Drowsy (2008-09-17 13:08:00) [20]
> Уменьши (по количеству записей) "таблицу".
вери-вери гуд джоке