Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.036 c
3-1103123842
alextov
2004-12-15 18:17
2005.01.23
Надо в каждой ячейке DBGrida иметь свой выпадающий список.


14-1104562946
Rainy
2005-01-01 10:02
2005.01.23
Где скачать Norton Comander


14-1104862888
Andrewp
2005-01-04 21:21
2005.01.23
Тупой препад!


14-1104911669
syte_ser78
2005-01-05 10:54
2005.01.23
Получения свойств файла


14-1104773042
Gero
2005-01-03 20:24
2005.01.23
Стишок





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский