Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.09;
Скачать: CL | DM;

Вниз

Реакция TQuery на изменение TTable одной и той же БД   Найти похожие ветки 

 
Влад2   (2002-12-15 23:11) [0]

Прошу совета уважаемых знатоков.
Открыты две таблицы одной и той же базы. Первая (типа TQuery) отсортирована по каким-то полям ("order by ..."). При помощи второй (типа TTable) удаляются или добавляются записи.

Вопрос: можно ли без закрытия и открытия таблицы БЫСТРО отразить в TQuery изменения TTable?

Примечание: свойство RequestLive, конечно, TRUE. Но табл. выстроена НЕ по ПЕРВИЧНОМУ ключу (без "order by ..." изменения отражаются мгновенно и вопроса нет)
Спасибо.


 
Jeer ©   (2002-12-16 00:05) [1]

Нет. Только reopen.


 
ЮЮ ©   (2002-12-16 05:05) [2]

Добавлять непосредственно в Query (см.ТUpdateSQL) и постараться позавыть о ТТаble, особенно, если имеется тенденция роста количества данных в таблице


 
Влад2   (2002-12-16 10:20) [3]

Уважаемый ЮЮ,
разве можно модифицировать таблицу, выстроенную НЕ по ПЕРВИЧНОМУ ключу?


 
Johnmen ©   (2002-12-16 10:35) [4]

>Влад2 (16.12.02 10:20)

Постановка вопроса абсолютно некорректна !
Если имеется в виду редактирование НД, полученного запросом из таблицы(таблиц) и их самих, то можно ! Как уже бало сказано, см.ТUpdateSQL...


 
Влад2   (2002-12-16 11:42) [5]

Уважаемый Johnmen,
прошу прощения за "абсолютно некорректную" постановку вопроса.
Суть моей проблемы в следующем.
При помощи TQuery получил отфильтрованный и упорядоченный набор данных. При помощи другой таблицы (например, TTable) происходит модификация БД (включая удаления и добавления записей), которая часто затрагивает набор TQuery, записи из которого должны быстро поставляться куда-то. Вопрос мой был в том, как изменения в базе быстро отразить в наборе TQuery. Визуальные компоненты не используются.
Возможно, я выражаюсь ненаучно и не абсолютно грамотно, но, полагаю, суть проблемы понятна.

Например: как быстро отразить изменение TQuery после удаления записи в TTable?
или (как альтернатива)
как удалить из TQuery (с "order by ...") запись, найденную TTable?

Наверное, в этой ситуации ТUpdateSQL не совсем подходит?


 
Max Zyuzin ©   (2002-12-16 11:52) [6]

>Влад2 (16.12.02 11:42)
Раз нет у вас визуального отображения данных тогда для чего обнавлять Query??

А вообще в вашей ситуации UpdateSQL замечательно справится и с удалением и с редактированием даже в отсортированном НД.

А отразить изменение в компонетне TQuery можно переоткрыв его... что вас пугает в такой алтернативе?


 
Влад2   (2002-12-16 12:08) [7]

Уважаемый Max Zyuzin,

>> для чего обнавлять Query??

Для использования данных другой программой, например, через DLL.

>> вашей ситуации UpdateSQL замечательно справится

Был бы очень благодарен за маленький примерчик (например, с удалением). К сожалению, никогда не работал с UpdateSQL :(

>> А отразить изменение в компонетне TQuery можно переоткрыв его... что вас пугает в такой алтернативе?

Низкая скорость. Изменения происходят очень часто, а эта работа не должна тормозить остальной процесс. Это часть программного комплекса.


 
Jeer ©   (2002-12-16 12:42) [8]

Влад2 (16.12.02 12:08)
Извините, а у Вас что - система наблюдения за действиями пользователей в реальном времени ?
Так даже клиент-сервер для этого не предназначен.


 
Max Zyuzin ©   (2002-12-16 12:51) [9]

>Влад2 (16.12.02 12:08)
Для использования данных другой программой, например, через DLL.
А другая программа сама не может обратится к таблице без посредников??

Был бы очень благодарен за маленький примерчик (например, с удалением). К сожалению, никогда не работал с UpdateSQL :(
Сейчас найду примерчик и вышлю по почте.. ок?

Низкая скорость. Изменения происходят очень часто, а эта работа не должна тормозить остальной процесс. Это часть программного комплекса
Если у вас такая навороченная прогамма, вы уверены что вам нужен именно Paradox?? Для подобных задач ИМХО надо и СУБД выбрать посерезнее...


 
Влад2   (2002-12-16 13:21) [10]

Jeer (16.12.02 12:42)
>> а у Вас что - система наблюдения за действиями пользователей в реальном времени ?
Мне такое в голову не приходило. Это чисто техническая задача, где БД играют очень важную, но вспомогательную роль.

Max Zyuzin (16.12.02 12:51)
>> А другая программа сама не может обратится к таблице без посредников??
Я считал, что TQuery и TTable и есть такие посредники, и с ними удобнее.

>> Сейчас найду примерчик и вышлю по почте.. ок?
Буду признателен.

Если у вас такая навороченная прогамма, вы уверены что вам нужен именно Paradox??
Не уверен. Но выбор был сделан давно, и у нас нет возможности использовать другие СУБД.

Вообще хотелось бы получить ответ по существу приведённого ранее примера:
Как быстро отразить изменение TQuery после удаления записи в TTable?
или (как альтернатива)
как удалить из TQuery (с "order by ...") запись, найденную TTable?
Спасибо.


 
Max Zyuzin ©   (2002-12-16 13:28) [11]

>Влад2 (16.12.02 13:21)
Я считал, что TQuery и TTable и есть такие посредники, и с ними удобнее.
Похоже, что мы говорим о разных вещах... я имею ввиду, что другая программа может сама обратится к базе данных (к файлу на диске), без программы - посредника, которая передает ей информацию... А вы говорите, что в рамках одной программы.

Буду признателен.
Проверяйте почту.

Как быстро отразить изменение TQuery после удаления записи в TTable?
АФАИК только переоткрыв Query по другому я думаю никак.

как удалить из TQuery (с "order by ...") запись, найденную TTable?
Смотрите то, что я вам послал... там есть и удаление и вставка и редактирование... удалить можете зная ключ.



Страницы: 1 вся ветка

Текущий архив: 2003.01.09;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.013 c
6-24993
Александр
2002-11-08 12:50
2003.01.09
Как назначить безопасность на папку для определённой группы польз


6-25000
Сувлехим
2002-11-10 19:42
2003.01.09
Как преобразовать время из Timer а из миллисекунд в нормальное


8-24984
Nikolai_S
2002-09-23 12:31
2003.01.09
Печать TMetafile на черно-белом принтере


14-25005
Snake2000
2002-12-18 16:47
2003.01.09
Помогите решить задачу


1-24888
Kair
2002-12-25 13:25
2003.01.09
Выключение компьютера