Форум: "Базы";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];
ВнизОбновление данных в DBGrid Найти похожие ветки
← →
7E81h © (2004-12-18 21:21) [0]Здравствуйте, уважаемые Мастера!
Прошу помощи!
Имеется DBGrid, связанный с IBQuery.
Нужно с определенным интервалом времени обновлять данные в DBGrid"е.
Использую следующий простейший код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
// nSaved: Integer;
Bookmark: TBookmark;
begin
with DataMod1 do begin
// Сохранить номер текущей записи
Bookmark:= IBQuery1.GetBookmark;
// либо:
// nSaved:= IBQuery1.FieldByName("ID_NO").AsInteger;
try
// Обновить данные
IBQuery1.Close;
IBQuery1.Open;
// Восстановить номер текущей записи
IBQuery1.GotoBookmark( Bookmark );
// либо:
// IBQuery1.Locate( "ID_NO", nSaved, [] );
finally
IBQuery1.FreeBookmark( Bookmark );
end;
end;
end;
При этом иногда происходит мерцание DBGrid"а и в ряде
случаев его скроллинг.
Отключение DataSource на время обновления не дает результата,
так как при этом все равно происходит перерисовка DBGrid.
Установка DBGrid1.DefaultDrawing:= False не позволяет избежать
перерисовки фона, поэтому мерцание также не устраняет.
Установка DoubleBuffered:= True также не приводит к нужному результату.
Методы BeginUpdate и EndUpdate являются protected и недоступны.
Возможно ли каким-либо образом блокировать перерисовку DBGrid на
время обновления источника данных?
Можно ли избежать скроллинга DBGrid"а при восстановлении текущей записи после обновления?
Направьте, пожалуйста, на путь истинный!
← →
Sergey_Masloff (2004-12-18 21:32) [1]Возможно ли каким-либо образом блокировать перерисовку DBGrid на
время обновления источника данных?
YourDataSet.DisableControls();
try
переоткрываешь
finally
YourDataSet.EnableControls();
end;
← →
Fin © (2004-12-18 23:11) [2]На счет того Можно ли избежать скроллинга DBGrid"а не отвечу, так как с ходу не знаю и как то не задумывался, а вот по поводу того что ты ищешь предыдущую запись при помощи Bookmark, вызывает сомнение. Дело в том что после обновления источника данных возвращаемые записи могут оказаться в другой последовательности, а предыдущий Bookmark был првязан как раз к нобору данных до обновления. Не знаю как у теба, но у меня GotoBookmark после обновления устанавливается на такой же порядковый номер записи что и до обновления, но сама запись после обновления уже переместилась в другое место.
← →
7E81h © (2004-12-19 11:39) [3]Спасибо большое!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.046 c