Конференция "Базы" » Позиционировать курсор после удаления и переоткрытия DS [D7]
 
  • OW © (17.03.11 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 © (17.03.11 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 © (17.03.11 15:57) [2]
    А при чем тут удаление? И если надо удалять при чем тут переоткрытие? Короче как связаны удаление и переоткрытие?
    Обычно после удаления указатель встает на следущую запись. Достаточно сделать Prior и желаемое достигнуто.
  • OW © (17.03.11 16:03) [3]
    Как связаны удаление и переоткрытие

    DS в состоянии CashedUpdates
    После всех манипуляция с ним, в том числе и если был delete, после commita надо переоткрыть, вдруг там еще что добавилось.
    все хорошо, если запомнить текущую запись.
    -------------
    Вопрос не в этом, поздно подумал / рано написал
    Вопрос как O узнал, какое поле у меня PK
  • Sergey13 © (17.03.11 16:16) [4]
    > вдруг там еще что добавилось.

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

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

    Может просто первое показал? 8-)
    В принципе несложно пошуршать по системным таблицам user_XXX и узнать.
  • sniknik © (17.03.11 17:32) [5]
    > Может просто первое показал? 8-)
    да нет, легко узнается по INFORMATION_SCHEMA (и/или, то же самое использует OpenSchema в ADO)
    т.что показывает, что есть.
  • Игорь Шевченко © (17.03.11 20:13) [6]

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


    спросил у user_constraints
  • Abramov Petr V. (17.03.11 22:03) [7]

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

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

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

    по словарю
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_part.htm#i125539
    там букаф дофига, но оно увлекательно, интересное/неинтересное сам отфильтруешь.
  • Кщд (18.03.11 07:45) [8]
    >OW ©   (17.03.11 15:29)  
    прошу прощения за оффтоп, но уже в нескольких Ваших топиках заметил, что имена объектов задаются строго в uppercase - чем обусловлено? корп. стиль или?...
  • OW © (18.03.11 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 © (18.03.11 10:14) [10]
    > [9] OW ©   (18.03.11 09:03)
    > вот отурылся набор, похимичили с ним, закоммитили. С чего
    > там появится то, что добавил другой юзер, и подходящие по
    > условию начальной выборки первым юзером?

    Ну так если ты его [пере]открыл - почему не появятся то?
  • OW © (18.03.11 10:16) [11]
    если переоткрыть, то да, видятся

    вопрос был
    >> видно добавленное после ИХ коммита, два.
    если не переоткрыть - не видятся
  • Sergey13 © (18.03.11 11:05) [12]
    > [11] OW ©   (18.03.11 10:16)

    Ну так а кто про "переоткрытия DS" начал? 8-)
 
Конференция "Базы" » Позиционировать курсор после удаления и переоткрытия DS [D7]
Есть новые Нет новых   [134431   +15][b:0][p:0]