-
Как можно запомнить и восстановить текущее положение в dataset?
Пытаюсь избавится от последствий Refresh, которое использую
для отображения внесенных только что записей
А после refresh текущей становится в общем случае другая запись.
Можно: Запомнить запись, Refresh, отыскать ее, сделать текущей
Не работал с ODAC вообще, может как-то по-другому проще?
-
стандартно. букмарками.
-
> [0] 12 © (23.03.10 16:26)
Вноси данные через датасет - ничего рефрешить не надо.
-
понятно.
просто там гораздо больше св-в у TOraххх чем у TADOххх
думал что-то есть такое
-
> стандартно. букмарками.
фигня
букмарк после переоткрытия датасета в общем случае инвалидный
locate по первичному ключу в датасете
-
этот общий случай происходит раз в тысячу лет.
у меня букмарки всю дорогоу были валидны.
кроме того, никто не запрещает делать проверку избукмарквалид.
и если валид, то делать гоуту букмарк.
-
> Медвежонок Пятачок (24.03.2010 09:16:05) [5]
В рубашке родился
-
> у меня букмарки всю дорогоу были валидны.
значит тебе везет
ибо это всего лишь адрес из той области памяти, которую занимали данные до переоткрытия датасета
и нет никаких гарантий, что после переокрытия данные не окажутся в другой области памяти или по этому адресу будут другие данные
-
> кроме того, никто не запрещает делать проверку избукмарквалид.
> и если валид, то делать гоуту букмарк.
зачем усложнять если можно просто
> locate по первичному ключу в датасете
-
а потому что.
букмарки универсальнее. можно иметь библиотечный код и прикручивать его к любому датасету.
а в случае локейта надо каждый раз программировать конкретный датасет (массив имен и значений колонок первичного ключа)
-
> Медвежонок Пятачок (24.03.2010 10:53:09) [9]
Код с Locate даже короче и проще чем с букмарк
-
> Медвежонок Пятачок © (24.03.10 10:53) [9]
а потом самолеты падают
и все потому, что кое-кто слишком боится перетрудиться
кстати, ТПервичныйКлюч ненамного сложнее ТБукмарк для использования в библиотеке
-
объединение из трех таблиц.
присутствуют первичные ключи из всех трех.
все три ключа составные.
достаньте список колонок по которым надо делать локейт.
я понимаю, что это (как и все остальное) не намного сложнее чем букмарк.
-
> объединение из трех таблиц.
> присутствуют первичные ключи из всех трех.
и чо? все три первичных ключа таблиц дают первичный ключ набора данных
если нет, то обрабатывать это бессмыссленно - плохое проектирование
> все три ключа составные.
и чо? ломает, что ли?
> достаньте список колонок по которым надо делать локейт.
и чо? 10 колонок с их значениями трудно запихать в класс ТПервичныйКлюч и обработать в библиотеке?
> я понимаю, что это (как и все остальное) не намного сложнее чем букмарк.
это РЕАЛЬНО так
как говорится: "кто хочет - ищет способы, кто не хочет - ищет причины"
-
TBookmark заюзал
не самолеты пишу, а собьется раз в пятилетку - фиг с ним
-
За рекомендацию пользоваться букмарками при переоткрытии датасета медвежонку надо по тятачку
:)
-
> собьется раз в пятилетку - фиг с ним
это рулетка
и далеко не всем в ней везет
иногда и застрелиться случайно можно
> MsGuns © (24.03.10 16:43) [15]
симметричное клеймо с противоположной стороны поставить, чтоб всем видно было, куда метить
-
и чо? все три первичных ключа таблиц дают первичный ключ набора данных
если нет, то обрабатывать это бессмыссленно - плохое проектирование
Речь шла о библиотечной функции, которая восстанавливает позицию в датасете после рефреша.
То есть это случай, когда библиотечная функция ничего не знает о конкретном датасете.
Я и говорю.
В датасете три таблицы со своими первичными ключами.
у всех они составные.
Вы ничего внутри функции не знаете о датасете.
Получите список имен полей праймари кеев, который будут заюзаны в вашем локейте.
В моем случае я сделаю гетбукмарк, затем проверю его на нил и проверю на букмарквалид. Если все ок, сделаю гоутубукмарк.
А что сделаете вы?
-
> Как можно запомнить и восстановить текущее положение в dataset?
>
> Пытаюсь избавится от последствий Refresh, которое использую
>
> для отображения внесенных только что записей
что-то не так в консерватории.
-
>Медвежонок Пятачок © (24.03.10 18:33) [17]
>То есть это случай, когда библиотечная функция ничего не знает о >конкретном датасете.
А что, собсна, она ДОЛЖНА знать ?