Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.01.09;
Скачать: [xml.tar.bz2];

Вниз

Реакция 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
6-25004
Cu
2002-11-11 12:35
2003.01.09
Компонент TIdSMTP (Indy)


3-24781
Влад2
2002-12-15 23:11
2003.01.09
Реакция TQuery на изменение TTable одной и той же БД


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


3-24823
drpass
2002-12-14 21:44
2003.01.09
Баг в IBExpress, или я чего-то не знаю?


14-25086
han_malign
2002-12-18 16:59
2003.01.09
Нарочно не придумаешь...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский