Конференция "Базы" » Requery для TADOQuery
 
  • miau (17.04.12 14:21) [0]
    if Query.Active then
    Query.Requery()



    Вот такая конструкция на одних кверях нормально работает, на других кричит, что не может этого на закрытом объекте. У меня полные непонятки, что там может быть закрытого в активном квере?
  • AV © (17.04.12 14:36) [1]
    ноги наверное растут отсюда

    procedure TCustomADODataSet.Requery(Options: TExecuteOptions = []);
    begin
     CheckBrowseMode;

    procedure TDataSet.CheckBrowseMode;
    begin
     CheckActive;

    procedure TDataSet.CheckActive;
    begin
     if State = dsInactive then DatabaseError(SDataSetClosed, Self);

    где  SDataSetClosed = 'Cannot perform this operation on a closed dataset';

    при всей странности...
    , обычно комп не врет :)
  • miau (17.04.12 14:44) [2]
    Если заменить
    Query.Requery()


    на
    Query.Close;
    Query.Open;


    Это не будет иметь негативных последствий?
  • Плохиш © (17.04.12 14:45) [3]

    > miau   (17.04.12 14:21)  

    Вариантов два
    1. Это два разных квери
    2. Между этими строчками имеются другие 17ые строки.
    3(нереальный). Чудеса.
  • Ega23 © (17.04.12 14:56) [4]

    > Это не будет иметь негативных последствий?


    Вообще-то так и делается.
  • AV © (17.04.12 14:58) [5]

    > Если заменить
    > Query.Requery()
    > на
    > Query.Close;
    > Query.Open;
    > Это не будет иметь негативных последствий?

    в модуле призванном для сокращения нажиманий кнопок
    давно написал
    procedure ReOpen(Q:TADOQuery); overload;
    begin
    Q.Close;
    Q.Open;
    end;
    и почти везде юзаю его.
    т.е. одно из него: ReOpen(MyQuery);

    глюков не замечал .
  • miau (17.04.12 15:08) [6]
    Всем спасибо, буду иметь ввиду.
 
Конференция "Базы" » Requery для TADOQuery
Есть новые Нет новых   [134431   +9][b:0][p:0.001]