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

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

Позиционировать курсор после удаления и переоткрытия DS [D7]


OW ©   (2011-03-17 15:29:00) 

oracle, ODAC, компонента TSmartQuery

В таблице сказано
CREATE TABLE "ISS"."PRICE"
  ( "ID_PRICE" NUMBER NOT NULL ENABLE,
"ID_CONTRACT" NUMBER NOT NULL ENABLE,
"DATE_RELEVANCE" DATE NOT NULL ENABLE,
...

 CONSTRAINT "PK_ID_PRICE" PRIMARY KEY ("ID_PRICE")


Когда я KeyFields в объект инспекторе (ОИ) раскрываю, он мне здоровско предлагает ID_PRICE.

Как он это узнал?

Задача позиционировать курсор. после удаления. Хочу получить KeyFields, до записи, запомнить его значение и locate делать после переоткрытия


Sergey13   (2011-03-18 11:05:00) [1]

> [11] OW ©   (18.03.11 10:16)

Ну так а кто про "переоткрытия DS" начал? 8-)


OW   (2011-03-18 10:16:00) [2]

если переоткрыть, то да, видятся

вопрос был
>> видно добавленное после ИХ коммита, два.
если не переоткрыть - не видятся


Sergey13   (2011-03-18 10:14:00) [3]

> [9] OW ©   (18.03.11 09:03)
> вот отурылся набор, похимичили с ним, закоммитили. С чего
> там появится то, что добавил другой юзер, и подходящие по
> условию начальной выборки первым юзером?

Ну так если ты его [пере]открыл - почему не появятся то?


OW   (2011-03-18 09:03:00) [4]

Sergey13 ©   (17.03.11 16:16) [4]
sniknik ©   (17.03.11 17:32) [5]
Игорь Шевченко ©   (17.03.11 20:13) [6]
Спасибо.


> а почему после коммита? когда добавляют, твоего коммита
> не спрашивают, раз,  видно добавленное после ИХ коммита,
>  два.

не понял
как это видно?
вот отурылся набор, похимичили с ним, закоммитили. С чего там появится то, что добавил другой юзер, и подходящие по условию начальной выборки первым юзером?


> Кщд   (18.03.11 07:45) [8]

да, он, наверное.
У нас не программерская контора. Как сказал начальник, "мы не программисты, мы инженеры и предоставляем сервис. Как мы это будем делать - никого не волнует. Хочешь  - вручную делай все, круглосуточно, но лучше написать софт, чтоб юзеры сами редактировали".

Мне ничего не сообщалось персонально, но все что открываю написано так.
Просто пишу так же и все


Кщд   (2011-03-18 07:45:00) [5]

>OW ©   (17.03.11 15:29)  
прошу прощения за оффтоп, но уже в нескольких Ваших топиках заметил, что имена объектов задаются строго в uppercase - чем обусловлено? корп. стиль или?...


Abramov Petr V.   (2011-03-17 22:03:00) [6]


> После всех манипуляция с ним, в том числе и если был delete,
>  после commita надо переоткрыть, вдруг там еще что добавилось.
>

а почему после коммита? когда добавляют, твоего коммита не спрашивают, раз,  видно добавленное после ИХ коммита, два.

> Вопрос как O узнал, какое поле у меня PK
>

по словарю
http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_part.htm#i125539
там букаф дофига, но оно увлекательно, интересное/неинтересное сам отфильтруешь.


Игорь Шевченко   (2011-03-17 20:13:00) [7]


> Как он это узнал?


спросил у user_constraints


sniknik   (2011-03-17 17:32:00) [8]

> Может просто первое показал? 8-)
да нет, легко узнается по INFORMATION_SCHEMA (и/или, то же самое использует OpenSchema в ADO)
т.что показывает, что есть.


Sergey13   (2011-03-17 16:16:00) [9]

> вдруг там еще что добавилось.

ИМХО порочная практика. На 100% актуальность данных все равно не достижима долее чем на мгновение.

> Вопрос как O узнал, какое поле у меня PK

Может просто первое показал? 8-)
В принципе несложно пошуршать по системным таблицам user_XXX и узнать.


OW   (2011-03-17 16:03:00) [10]

Как связаны удаление и переоткрытие

DS в состоянии CashedUpdates
После всех манипуляция с ним, в том числе и если был delete, после commita надо переоткрыть, вдруг там еще что добавилось.
все хорошо, если запомнить текущую запись.
-------------
Вопрос не в этом, поздно подумал / рано написал
Вопрос как O узнал, какое поле у меня PK


Sergey13   (2011-03-17 15:57:00) [11]

А при чем тут удаление? И если надо удалять при чем тут переоткрытие? Короче как связаны удаление и переоткрытие?
Обычно после удаления указатель встает на следущую запись. Достаточно сделать Prior и желаемое достигнуто.


OW   (2011-03-17 15:39:00) [12]

procedure TForm1.RefreshWithKeepPos(Q: TSmartQuery);
var
 V: Variant;
begin
 Q.DisableControls;
 Q.Prior;
 V := Q.Fields[0].Value;
 Q.EnableControls;
 Q.Refresh;
 Q.Locate(Q.Fields[0].FullName, V, [loCaseInsensitive] );
end;

так тоже работает, т.к. Id всегда первым в запросе делаю
но так не нравится что-то


Наверх

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