Вниз
Скачать: CL | DM;

Как проверить присутствует-ли занчение в TDataSet ?   Найти похожие ветки 

← →
Rych   (2004-04-13 13:19) [0]

Всем доброго времени! Проблема такая: есть TIbQuery фильтрующий таблицу IB по заданному критерию. В результатах пользоваткль делает закладки (Bookmark не подходит так как ссылается на номер записи и при пересортировке валидный Bookmark указывает не туда), нужно проверить присутствует-ли запись со значением закладки при текущем фильтре. Lookup хоть и не изменят текущей записи, но скролит таблицу и оказывается что под курсором после клика не та запись что была до. Есть-ли способ перерыть DataSet без скроллинга ?

Заранее благодарен Rych.


← →
Курдль ©   (2004-04-13 13:20) [1]

А TIbQuery.DisableContrils не подойдет?


← →
Rych   (2004-04-13 13:25) [2]

Пробовал :) - всё равно состояние грида изменяется и позиционирует запись аккурат в центер :(


← →
Domkrat ©   (2004-04-13 15:02) [3]

Отдельно сделать запрос спомощью IBSQL.


← →
Курдль ©   (2004-04-13 15:16) [4]

Ну ладно, припомнить ID записи, перелопатить набор данных, а потом сделать Locate по этому ID.


← →
clickmaker ©   (2004-04-13 15:46) [5]

type
  TCrackedDBGrid = class(TDBGrid);  

OldActive := TCrackedDBGrid(DBGrid).DataLink.ActiveRecord;

DBGrid.DataSource.DataSet.Locate

TCrackedDBGrid(Sender).DataLink.ActiveRecord := OldActive;


← →
Rych   (2004-04-13 18:37) [6]

Относительно отдельного запроса - меня терзают смутные сомнения - "Закладок", по моим представлениям может быть около десятка (вряд-ли пользователь удержит в голове больше) проверять их "валидность" нужно по клику и соответственно строить список. Если по каждому клику выполнять запрос 10 раз - мне кажется будет тормозить.

С ActiveRecord я пробовал - пытался восстановить положение строки в гриде - не получилось если Lookup не меняет текущую запись, то изменение ActiveRecord у меня позиционирует курсор на другую запись, не являющуюся текущей в DataSet, а скроллинг приводит к скроллингу DataSet.

А вот по поводу ID записи - я с этим не работал - если можно поподробнее - где его взять? или где почитать? Плиз!


← →
kaif ©   (2004-04-13 23:21) [7]

Можно запомнить последнее текущее значение ключевого поля, затем вызвать DisableControls, затем найти то, что нужно с помощью locate или lookup, затем вернуться к исходной записи с помощью того же locate (по последнему текущему значению ключевого поля), затем вызвать EnableControls. Ничего дергаться при этом не должно, насколько я понимаю.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.028 c
14-1082037100
ghg
2004-04-15 17:51
2004.04.11
вопрос про покрытие на мониторе


6-1076258752
Kor@l
2004-02-08 19:45
2004.04.11
TserverSocket and TclienSocket


1-1082946109
Женя
2004-04-26 06:21
2004.04.11
как удалить все файлы из каталога ?


1-1079730463
Mirror
2004-03-20 00:07
2004.04.11
MDI


3-1081941984
Flashas
2004-04-14 15:26
2004.04.11
S DBgrid..




   Наверх