Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2015, 10:25   #1
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию Timer и sql запросы

Обновляю данные таблиц таким методом:
Код:
procedure TForm3.Timer2Timer(Sender: TObject);
var
 SL: TStringList;
  i: Integer;
begin
  sl:=TStringList.Create;
  SQLConnection1.GetTableNames(sl,false);
  StringGrid1.RowCount:=(sl.Count+1);
  for i := 0 to sl.Count-1 do stringgrid1.Cells[0,i+1] := sl.Strings[i];
with SQLQueryR do begin;
 sql.text:=('SELECT COUNT(*) FROM Moskow');
 try
  open;
 StringGrid1.Cells[3,2]:=Fields[0].AsString;

     Close;
Через таймер!но как бы этот вариант не устраивает,из за постоянного мограния.Подскажите как еще можно постоянно получать данные с бд без таймера?
mitiay вне форума Ответить с цитированием
Старый 10.11.2015, 11:06   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Получать уведомления о событиях с SQL-сервера. Если он поддерживает этот механизм
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.11.2015, 09:17   #3
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию

А можно пример?
mitiay вне форума Ответить с цитированием
Старый 11.11.2015, 09:23   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Пример чего? Сначала узнай поддерживает ли твое СУБД эту технологию. Если поддерживает - научись создавать события на сервере. Потом научись их обрабатывать на клиенте. Я не пробовал, о такой возможности знаю чисто теоретически
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.11.2015, 07:41   #5
Andrei
Форумчанин
 
Регистрация: 20.06.2007
Сообщений: 270
По умолчанию

Постоянно моргает потому что вы перерисовываете StringGrid не зависимо от того, изменились данные или нет. Предлагаю разделить процесс: Получать данные в отдельный StringList и сравнивать его со StringList-ом StringGrid-а. Если они не совпадают, то обновить StringGrid.

Это, конечно, не ответ на вопрос
Цитата:
как еще можно постоянно получать данные с бд без таймера?
, а просто финт чтобы уменьшить частоту морганий. Потому что помимо морганий сплошная перекачка данных по таймеру - это дополнительная и неоправданная нагрузка на сеть.


PS: то что предлагает Аватар - идеальный ответ на ваш вопрос.
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько?

(с) Библия. Вольный перевод с древнееврейского.
Andrei вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запросы SQL Vilkas SQL, базы данных 0 30.03.2014 19:56
SQL запросы niki-maximal SQL, базы данных 3 26.02.2014 21:00
Запросы SQL roxy7 Microsoft Office Access 1 16.05.2012 11:44
SQL Запросы neomax38 БД в Delphi 0 18.12.2011 08:33
SQL запросы Toshka SQL, базы данных 23 22.08.2011 10:10