Показать сообщение отдельно
  #13  
Старый 25.06.2009, 20:24
PiboDIE PiboDIE вне форума
Прохожий
 
Регистрация: 17.06.2009
Сообщения: 28
Репутация: 10
По умолчанию

В принципе все эти телодвижения можно выполнять имея всего 1 квери, но тогда алгоритм должен быть примерно следующий

Записи отфильтрованы и отображаются пользователю
1) При возникновении необходимости (нажатие кнопки) внести/удалить/изменить записи отключаем квери
Query.Active := false;
Не забываем отключить датасорс
DataSource.Enabled := false;
2)Запоминаем предыдущий запрос, который отображал данные (Не обязательно запоминать, он может являться константой)
tmp_query := Query.SQL.Text;
3)Оформляем новый запрос к базе (внесение/изменение/удаление данных)
Query.SQL.Text := 'INSERT/UPDATE/DELETE ...';
4)Выполняем запрос на изменение данных
Query.ExecSQL;
5)Восстанавливаем предыдущий запрос (на отображение данных)
Query.SQL.Text := tmp_query;
6)Фильтруем данные из базы
Query.Active := true;
Восстанавливаем активность датасорса
DataSource.Enabled := true;

То есть смысл в том, что - квери не может одновременно отображать данные и вносить изменения в базу. (Я могу заблуждаться, но пришел именно к такому выводу)
Ответить с цитированием