Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.08.31;
Скачать: CL | DM;

Вниз

Позиционировать курсор после удаления и переоткрытия DS   Найти похожие ветки 

 
OW ©   (2011-03-17 15:29) [0]

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 делать после переоткрытия


 
OW ©   (2011-03-17 15:39) [1]

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 всегда первым в запросе делаю
но так не нравится что-то


 
Sergey13 ©   (2011-03-17 15:57) [2]

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


 
OW ©   (2011-03-17 16:03) [3]

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

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


 
Sergey13 ©   (2011-03-17 16:16) [4]

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

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

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

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


 
sniknik ©   (2011-03-17 17:32) [5]

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


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


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


спросил у user_constraints


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


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

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

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

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


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

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


 
OW ©   (2011-03-18 09:03) [9]

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]

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

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


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

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

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


 
OW ©   (2011-03-18 10:16) [11]

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

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


 
Sergey13 ©   (2011-03-18 11:05) [12]

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

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



Страницы: 1 вся ветка

Текущий архив: 2014.08.31;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.006 c
2-1380884262
Вася
2013-10-04 14:57
2014.08.31
как освободить память после вызова функции?


2-1381424131
Алла
2013-10-10 20:55
2014.08.31
StringGrid программно переместить выделение


2-1380886196
Rezolik
2013-10-04 15:29
2014.08.31
tClientDataSet


15-1391203874
Дмитрий СС
2014-02-01 01:31
2014.08.31
Конвертор видеосигнала.


15-1391254319
xayam
2014-02-01 15:31
2014.08.31
Проводник для больших папок