Конференция "Базы" » Как обновить значение в DBgrid измененное в другой программе [D7, MSSQL]
 
  • vanatage10 (18.06.09 15:52) [0]
    возможен вариант когда известна запись, которая изменена

    запрос аналогичен
    http://pda.delphimaster.net/?id=1243862381&n=1

    MSSQL 2005, Delphi 7, ADOQuery
  • Ega23 © (18.06.09 15:58) [1]
    Гарантированно - никак. Можно прикрутить костыли и пользоваться ими.
    Вариант 1.
    Посылка UDP-сообщения.
    Вариант 2.
    Запоминать дату последнего изменения, на сервере её апдейтить, а на клиенте по таймеру опрашивать. Если дата поменялась - обновлять информацию.

    ИМХО, и то и другое - фигня. Запрос должен идти от пользователя.
  • Sergey13 © (18.06.09 15:59) [2]
    > [0] vanatage10   (18.06.09 15:52)
    > запрос аналогичен

    Так и ответ аналогичен.
  • vanatage10 (18.06.09 16:04) [3]
    ADOQuery.Refresh

    а что нибудь типа этого?
  • Ega23 © (18.06.09 16:12) [4]

    > а что нибудь типа этого?


    ADOQuery.Close;
    ADOQuery.Open;
  • vanatage10 (18.06.09 16:18) [5]
    так не пойдет, т.к. потеряется указатель с записи...

    а как тогда программно установить в DBGrid нужное значение?
  • Sergey13 © (18.06.09 16:21) [6]
    > [5] vanatage10   (18.06.09 16:18)

    Запомнить старое значение ключевой записи и перейти на него после переоткрытия.
  • Dennis I. Komarov © (18.06.09 16:22) [7]
    А зачем пользователю указатель на запись?
  • Ega23 © (18.06.09 16:35) [8]

    > а как тогда программно установить в DBGrid нужное значение?


    procedure DSRefresh;
    var
     value : Integer;
    begin
     value := -1;
     if (DS.Active) and (not DS.IsEmpty) then
       value :=  DS.FieldByName('Ключевое поле').AsInteger;
     DS.Close;
     try
       DS.Open;
       DS.Locate('Ключевое поле', value, []);
     except
       ......
     end;
    end;

  • Игорь Шевченко © (18.06.09 17:28) [9]
    RTFM: Bookmarks или Locate
  • Ega23 © (18.06.09 17:35) [10]

    > RTFM: Bookmarks или Locate


    Bookmarks при переоткрытии использовать нельзя.
  • Игорь Шевченко © (18.06.09 18:18) [11]
    Ega23 ©   (18.06.09 17:35) [10]


    > Bookmarks при переоткрытии использовать нельзя.


    Это к ADO относится ? Я просто ADO плохо знаю :)
  • Ega23 © (18.06.09 19:20) [12]

    > Это к ADO относится ? Я просто ADO плохо знаю :)


    Нет гарантии, что после открытия букмарки будут валидными.
  • vanatge (19.06.09 01:59) [13]
    а не нельзя при открытой ADO обновить одну запись/поле не закрывая
    или просто ее переписать?
    _______________________________
    главное не закрывать!
  • Ega23 © (19.06.09 10:09) [14]
    Можно. Попробуй TADODataSet.Resync
 
Конференция "Базы" » Как обновить значение в DBgrid измененное в другой программе [D7, MSSQL]
Есть новые Нет новых   [134474   +35][b:0][p:0.001]