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

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

Как после Refresh попасть на ту запись которая была активна. [D6, IB6.x]


bSava ©   (2003-06-11 15:39:00) 

Суть вопроса в следующем:
У меня есть две таблицы связанные между собой (master-detail), так вот когда я вношу новую записьв первую таблицу, и Grid теряет фокус ввода у меня происходит Pos для первой таблицы (должен заметить что база IB, а точнее Yaffil), так вот было замечино что если не сделать Refresh, для первой таблице, то во вторую внести не получается из-за notNull связанного поля, тоесть первичный ключ первой таблице не поподает на клиента до рефреша и соответственно не поподает во внешний ключ второй таблицы. Все бы ничего но беда в другом, если делаю рефрешь, то записи начинают вести себя слегка непонятно они меняют сой порядок следования в гриде, но не всегда, а когда им в голову придет, я думал что и это не беда, вот оказалась беда, Bookmark не помогает... К примеру я вношу запись под порядковым номером 3 а после рефреша это запись встает на второе место, а закладка меня отправляет на третью запись по порядку следования, хотел первичный ключ выципить и потом Locate на него, но тут замкнутый круг, для начала надо рефрешь сделать....
Уважаемые мастера подскажите что делать???


bSava   (2003-06-16 11:05:00) [1]


> Zacho © (11.06.03 20:29)
> Значение генератора надо получать до вставки новой записи.
> Читай http://www.ibase.ru/devinfo/generator.htm

Огромное спасибо очень помогло и отлегло!!!


Zacho   (2003-06-11 20:29:00) [2]

Значение генератора надо получать довставки новой записи. Читай http://www.ibase.ru/devinfo/generator.htm


Shaman   (2003-06-11 18:06:00) [3]

Значение РК бери из генератора предварительно и все у тебя получится


Val   (2003-06-11 17:01:00) [4]

>clickmaker © (11.06.03 16:07)

..либо предполагать, что ID новой записи = max(ID)+1..

до добра не доведет


clickmaker   (2003-06-11 16:07:00) [5]

Дык тебе надо встать на запись, которая была активна до добавления и сохранения изменений, или на добавленную ? Если первый вариант, то сохранение PK, а потом Locate. Старый то PK не меняется. А если второй, то либо получать с сервера identity для этой таблицы, либо предполагать, что ID новой записи = max(ID)+1


MalkoLinge   (2003-06-11 16:05:00) [6]

Создай буукмарку :))
созхрани ее, после рефреша проверь, действительна ли она (проо всяк пожырный) а потом делай ГтоБокмар :))

а можно и как Анатолий сказал, запоминать текущее значение ключевого поля а потом локейтиться :)


bSava   (2003-06-11 16:01:00) [7]


> Anatoly Podgoretsky © (11.06.03 15:51)
> Locate

Интересно по какому полю???? я могу только по первичному ключу сдклать иначе гарантировано могу не попасть на ту записть которую мне нужно, читай внимательнее!!!


Anatoly Podgoretsky   (2003-06-11 15:51:00) [8]

Locate


Наверх

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