![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
фильтр [D6, IB6.x]
Senator © (2002-12-19 17:29:00)Подскажите пожалста!
Почему не обновляються данные в таблице (текст ниже в таймере)?
EventTable.Filtered:=False;
EventTable.Refresh;
EventTable.Filter:="idevent>"+IntToStr(CurrentEventID);
EventTable.Filtered:=True;
first;
while not EOF do
....
Первый раз обновляет, потом не хочет
Senator (2002-12-20 11:47:00) [1]Так ладно, спасибо всем...
myor (2002-12-20 11:43:00) [2]
> Тогда используй запрос и не мучай ни нас, ни базу
мне нечего добавить
ЮЮ (2002-12-20 11:37:00) [3]Тогда используй запрос и не мучай ни нас, ни базу
Senator (2002-12-20 11:31:00) [4]Paradox
Close + Open - будет Очень долго, так как сама БД находиться в другом городе и большая (порядка сот тысяч записей)
ЮЮ (2002-12-20 11:27:00) [5]В Неlpe написано "In particular,TQuery components do not support", т.е. в частности это не работает в TQuery, но нигде не гарантируется, что это работает в TEventTable. За сутки мог бы хоть признаться, что за таблицу используешь.
Замени Refresh на Close + Open и сравни результаты
Senator (2002-12-20 11:22:00) [6]
ЮЮ © (20.12.02 10:56)>кроме увеличения времени работы
C каких пор запрос работает медленнее чем Table.Refresh? И работает ли Table.Refresh вообще? Т.к. в Helpe написано
Note: The Refresh method does not work for all TDataSet descendants.
Help дочитывать надо до конца, ...for all TDataSet - а дальше - на запросах он и не работает, а в примере к нему - работа с TTable...
myor (2002-12-20 11:16:00) [7]присоединяюсь к ЮЮ но чуть с другой стороны
зачем тебе filter и refresh в таймере ?
уж лучше фильтровать при необходимости (при запросе к данным),
а это как раз select
Senator (2002-12-20 10:56:00) [8]Добавление записей происходит автоматом из другой проги, каждую минуту 5-15 записей(иногда больше), так что, они добавляються 100пудово...
ЮЮ (2002-12-20 10:56:00) [9]>кроме увеличения времени работы
C каких пор запрос работает медленнее чем Table.Refresh? И работает ли Table.Refresh вообще? Т.к. в Helpe написано
Note: The Refresh method does not work for all TDataSet descendants.
myor (2002-12-20 10:53:00) [10]
> Записи вставляються из другой проги.
??????????
> Период таймера 1-5 мин, еще не знаю, думаю успевает пройти
> ????
timer1.interval
попробуй добавить запись и напиши!!!!
ведь, если ты не добавляешь новых записей, то отфильтрованная таблица будет такой же
попробуй добавить запись и напиши!!!!
Senator (2002-12-20 10:48:00) [11]А разница ???? кроме увеличения времени работы (запрос на плоскую таблицу) ниче не меняеться
ЮЮ (2002-12-20 10:45:00) [12]Может вместо
EventTable.Filtered:=False;
EventTable.Refresh;
EventTable.Filter:="idevent>"+IntToStr(CurrentEventID);
EventTable.Filtered:=True;
Посылать запрос SELECT ... WHERE idevent>:EventID ???
Senator (2002-12-20 10:33:00) [13]Записи вставляються из другой проги.
Период таймера 1-5 мин, еще не знаю, думаю успевает пройти ????
myor (2002-12-20 10:26:00) [14]кстати, а какой период таймера?
прога хоть успеет пройтись по таблице while not eof?
myor (2002-12-20 10:24:00) [15]а значение этого
> "последнего id"
меняется?
похоже- нет!
прога фильтрует по "последнему id",
определяет в цикле новый "последний id"- тот же самый
и по таймеру опять фильтрует по тому же значению
или у тебя где-то есть вставка строки в EventTable?
попробуй добавить запись и напиши.
Senator (2002-12-20 09:32:00) [16]Да, но весь этот кусок кода находиться в таймере....
Vick (2002-12-19 18:12:00) [17]Senator, эт ясно
>....
>Первый раз обновляет, потом не хочет
потом, это когда, если у тебя CurrentEventID глобальная, то она остается с последним значением записанным в нее в цикле...
myor (2002-12-19 18:10:00) [18]так вот где ты это делаешь?
в цикле я виже только определение этого "последнего id" и присвоение его значения переменной
...первый раз while not EOF do выполняеться, а потом, нет...
похоже, выполняется ЭТО еще до цикла:
EventTable.Filter:="idevent>"+IntToStr(CurrentEventID);
EventTable.Filtered:=True;
а в самом цикле такого нет
Senator (2002-12-19 18:09:00) [19]в цикле меняеться, но фильтр стоит до цикла
Vick (2002-12-19 18:06:00) [20]Внимательно следи какое значение CurrentEventID принимает при начале выполнения этого события... А то оно у тебя на протяжении цикла меняется n-ное кол-во раз...