![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обновление набора данных в DBGrid -- требуется помощь [D7, IB5.x]
Сергей Б. © (2002-11-20 12:21:00)Здравствуйте, ВСЕМ!
Имеем: IBDataSet, значение SelectSQL которого определяется след. образом: "select * from Table1 where Type = 0", и связанный с ним DBGrid.
Делаем: Устанавливаем значение поля текущей записи Type = 1
Хотим, чтобы данная запись пропала из набора данных, т.е. уже теперь не отображалась в DBGrid, а текущей стала следующая по порядку запись.
Проблема: не получается! :( Т.е. запись пропадает лишь при переоткрытии набора данных, а надо динамически. КАК?
Prooksius (2002-11-20 20:34:00) [1]2 Сергей Б. (20.11.02 14:57)
Такого ты не сделаешь без переоткрытия датасета.
Хотя, в FIBPlus есть такая процедурка: FilterIn
Но вообще-то я думаю, что это изврат.
Так что переоткрывай. :(
Сергей Б. (2002-11-20 18:06:00) [2]Я чувствую, вопрос таки останется без ответа... :(
Fareader (2002-11-20 15:06:00) [3]:)
Сергей Б. (2002-11-20 14:57:00) [4]Но, вопросы на этом не закончены!!! Теперь требуется сделать обратную операцию: изменить значение Type на 0 и, желательно, не переоткрывать втупую весь DataSet, а постараться лишь подчерпнуть вновь объявившуюся запись. Такое возможно?
Сергей Б. (2002-11-20 14:52:00) [5]Запрос написан, естественно отбор по ключевому полю. Ему все равно фиолетово. Измененные данные - да, показывает, а вот исключать по фильтру не хочет, редиска.
Впрочем, проблема решена благодаря подсказке Наталии (какие оказывается талантливые девушки-прграммеры :). Вот такой обработчик помог все сделать:
procedure TClientChild.DS1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
Accept := DataSet["Type"] = 0;
end;
Fareader (2002-11-20 14:18:00) [6]А запрос в Refresh написан?
Проверь чтобы отбиралась именно текущая запись, т.е. оставь только ключевое поле.
Сергей Б. (2002-11-20 14:14:00) [7]2 Fareader © (20.11.02 14:00)
Пробовал :) что-то ему безразлично...
Fareader (2002-11-20 14:00:00) [8]2Сергей Б. (20.11.02 13:52)
А ты не пробовал делать Refresh?
Сергей Б. (2002-11-20 13:52:00) [9]Фильтр попробовал - не помогло. :(
//У FIBPlus есть такая процедурка - FilterOut
Хотелось бы обойтись стандартными IB компонентами...
Prooksius (2002-11-20 13:46:00) [10]У FIBPlus есть такая процедурка - FilterOut
"Remove" the current record from FromDS. (It marks the record deleted without causing a post.)
Наталия (2002-11-20 13:33:00) [11]onfilterecords тебе должно помочь
Сергей Б. (2002-11-20 13:16:00) [12]Кому поставить и как? IBDataSet"у? У него есть св-во Filtered, но как им пользоваться?
ЮЮ (2002-11-20 12:56:00) [13]Поставить фильтр, аналогичный условию отбора