При работе с программой один из TQuery служит для отображения информации в сетке, а другой TQuery для изменения данных...
Так вот проблемма в том, что для просмотра изменений внесённых вторым TQuery необходимо переоткрыть первый TQuery а это влечёт за собой затраты времени и мерцание...
Как от этого избавиться или хотябы минимизировать?
С уважением, Олег.
Переоткрытие запроса TQuery без мерцания...
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
GOS, если мне мой склероз не изменяет, то есть такое свойство DisableControls.
Кроме того, в крайнем случае можно и Dataset в null поставить.
Кроме того, в крайнем случае можно и Dataset в null поставить.
Даже самый дурацкий замысел можно воплотить мастерски
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Почти не изменяетесли мне мой склероз не изменяет

Есть 2 метода DisableControls и EnableControls
НО они тут не помогут, я думаю.
Это неправильный подход.один из TQuery служит для отображения информации в сетке, а другой TQuery для изменения данных
Правильный - это TQuery для отображения данных + TUpdateSQL для изменения.
Query1.UpdateObject надо сделать = UpdateSQL1, в UpdateSQL1 ввыести запросы, которые будут выполняться при удалении/обновлении/вставке и TQuery станет работать как обычный TTable!
но только если не использвать запрос для выборки данных из нескольких связанных таблиц...
или я не прав?
или я не прав?
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Не прав.
Так как даже если select-запрос выполняет объединение таблиц, то Update-запрос (или Inser/delete-запроc) будет делать то, что мы там напишем.
Даже если мы захотим разрешить менять поля в обеих таблицах (а не только "в таблице, сохраняющей ключи"), думаю, что мы сможем это сделать несколькими операторами update, но в этом случае прийдется динамически подменять текст оператора update в нужный момент. (Не пробовал, но думаю можно). А еще можно попробовать TUpdateSql научить выполнять несколько операторов, разделенных точкой с запятой (т.е. написать свой компонент, который это умеет)
Кроме того если мы используем, например, ODBC+TQuery+TUpdateSQL для доступа к Oracle, то можем апдейтить встроенный View, содержащий Join нескольких таблиц, если update касается таблицы, "сохраняющей ключи".
Так как даже если select-запрос выполняет объединение таблиц, то Update-запрос (или Inser/delete-запроc) будет делать то, что мы там напишем.
Даже если мы захотим разрешить менять поля в обеих таблицах (а не только "в таблице, сохраняющей ключи"), думаю, что мы сможем это сделать несколькими операторами update, но в этом случае прийдется динамически подменять текст оператора update в нужный момент. (Не пробовал, но думаю можно). А еще можно попробовать TUpdateSql научить выполнять несколько операторов, разделенных точкой с запятой (т.е. написать свой компонент, который это умеет)
Кроме того если мы используем, например, ODBC+TQuery+TUpdateSQL для доступа к Oracle, то можем апдейтить встроенный View, содержащий Join нескольких таблиц, если update касается таблицы, "сохраняющей ключи".
Спасибо!