Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Реакция TQuery на изменение TTable одной и той же БД [D5, Paradox]


Влад2 ©   (2002-12-15 23:11:00) 

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

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

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


Max Zyuzin   (2002-12-16 13:28:00) [1]

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

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

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

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


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

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 12:51:00) [3]

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

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

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


Jeer   (2002-12-16 12:42:00) [4]

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


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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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


Johnmen   (2002-12-16 10:35:00) [8]

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

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


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

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


ЮЮ   (2002-12-16 05:05:00) [10]

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


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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо