Конференция "Базы" » ODAC/ запомнить и восстановить текущее положение в dataset [D7]
 
  • 12 © (23.03.10 16:26) [0]
    Как можно запомнить и восстановить текущее положение в dataset?
    Пытаюсь избавится от последствий Refresh, которое использую
    для отображения внесенных только что записей

    А после refresh текущей становится в общем случае другая запись.

    Можно: Запомнить запись, Refresh, отыскать ее, сделать текущей

    Не работал с ODAC вообще, может как-то по-другому проще?
  • Медвежонок Пятачок © (23.03.10 16:38) [1]
    стандартно. букмарками.
  • Sergey13 © (23.03.10 16:39) [2]
    > [0] 12 ©   (23.03.10 16:26)

    Вноси данные через датасет - ничего рефрешить не надо.
  • 12 © (23.03.10 16:57) [3]
    понятно.
    просто там гораздо больше св-в у TOraххх чем у TADOххх
    думал что-то есть такое
  • Правильный$Вася (24.03.10 00:27) [4]

    > стандартно. букмарками.

    фигня
    букмарк после переоткрытия датасета в общем случае инвалидный

    locate по первичному ключу в датасете
  • Медвежонок Пятачок © (24.03.10 09:16) [5]
    этот общий случай происходит раз в тысячу лет.
    у меня букмарки всю дорогоу были валидны.

    кроме того, никто не запрещает делать проверку избукмарквалид.
    и если валид, то делать гоуту букмарк.
  • Anatoly Podgoretsky © (24.03.10 10:25) [6]
    > Медвежонок Пятачок  (24.03.2010 09:16:05)  [5]

    В рубашке родился
  • Правильный$Вася (24.03.10 10:26) [7]

    > у меня букмарки всю дорогоу были валидны.

    значит тебе везет
    ибо это всего лишь адрес из той области памяти, которую занимали данные до переоткрытия датасета
    и нет никаких гарантий, что после переокрытия данные не окажутся в другой области памяти или по этому адресу будут другие данные
  • sniknik © (24.03.10 10:32) [8]
    > кроме того, никто не запрещает делать проверку избукмарквалид.
    > и если валид, то делать гоуту букмарк.
    зачем усложнять если можно просто
    > locate по первичному ключу в датасете
  • Медвежонок Пятачок © (24.03.10 10:53) [9]
    а потому что.

    букмарки универсальнее. можно иметь библиотечный код и прикручивать его к любому датасету.
    а в случае локейта надо каждый раз программировать конкретный датасет (массив имен и значений колонок первичного ключа)
  • Anatoly Podgoretsky © (24.03.10 11:37) [10]
    > Медвежонок Пятачок  (24.03.2010 10:53:09)  [9]

    Код с Locate даже короче и проще чем с букмарк
  • Правильный$Вася (24.03.10 11:39) [11]

    > Медвежонок Пятачок ©   (24.03.10 10:53) [9]

    а потом самолеты падают
    и все потому, что кое-кто слишком боится перетрудиться

    кстати, ТПервичныйКлюч ненамного сложнее ТБукмарк для использования в библиотеке
  • Медвежонок Пятачок © (24.03.10 12:09) [12]
    объединение из трех таблиц.
    присутствуют первичные ключи из всех трех.
    все три ключа составные.

    достаньте список колонок по которым надо делать локейт.

    я понимаю, что это (как и все остальное) не намного сложнее чем букмарк.
  • Правильный$Вася (24.03.10 12:49) [13]

    > объединение из трех таблиц.
    > присутствуют первичные ключи из всех трех.

    и чо? все три первичных ключа таблиц дают первичный ключ набора данных
    если нет, то обрабатывать это бессмыссленно - плохое проектирование

    > все три ключа составные.

    и чо? ломает, что ли?

    > достаньте список колонок по которым надо делать локейт.

    и чо? 10 колонок с их значениями трудно запихать в класс ТПервичныйКлюч и обработать в библиотеке?

    > я понимаю, что это (как и все остальное) не намного сложнее чем букмарк.

    это РЕАЛЬНО так

    как говорится: "кто хочет - ищет способы, кто не хочет - ищет причины"
  • 12 © (24.03.10 14:15) [14]
    TBookmark заюзал
    не самолеты пишу, а собьется раз в пятилетку - фиг с ним
  • MsGuns © (24.03.10 16:43) [15]
    За рекомендацию пользоваться букмарками при переоткрытии датасета медвежонку надо по тятачку
    :)
  • Правильный$Вася (24.03.10 17:29) [16]

    > собьется раз в пятилетку - фиг с ним

    это рулетка
    и далеко не всем в ней везет
    иногда и застрелиться случайно можно

    > MsGuns ©   (24.03.10 16:43) [15]

    симметричное клеймо с противоположной стороны поставить, чтоб всем видно было, куда метить
  • Медвежонок Пятачок © (24.03.10 18:33) [17]
    и чо? все три первичных ключа таблиц дают первичный ключ набора данных
    если нет, то обрабатывать это бессмыссленно - плохое проектирование


    Речь шла о библиотечной функции, которая восстанавливает позицию в датасете после рефреша.

    То есть это случай, когда библиотечная функция ничего не знает о конкретном датасете.

    Я и говорю.
    В датасете три таблицы со своими первичными ключами.
    у всех они составные.

    Вы ничего внутри функции не знаете о датасете.

    Получите список имен полей праймари кеев, который будут заюзаны в вашем локейте.

    В моем случае я сделаю гетбукмарк, затем проверю его на нил и проверю на букмарквалид. Если все ок, сделаю гоутубукмарк.

    А что сделаете вы?
  • Игорь Шевченко © (24.03.10 19:00) [18]

    > Как можно запомнить и восстановить текущее положение в dataset?
    >
    > Пытаюсь избавится от последствий Refresh, которое использую
    >
    > для отображения внесенных только что записей


    что-то не так в консерватории.
  • MsGuns © (24.03.10 19:19) [19]
    >Медвежонок Пятачок ©   (24.03.10 18:33) [17]
    >То есть это случай, когда библиотечная функция ничего не знает о >конкретном датасете.

    А что, собсна, она ДОЛЖНА знать ?
 
Конференция "Базы" » ODAC/ запомнить и восстановить текущее положение в dataset [D7]
Есть новые Нет новых   [134433   +22][b:0][p:0.001]