Вниз
Скачать: 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.032 c
14-1079638361
Seldon
2004-03-18 22:32
2004.04.11
Задача...


6-1075905217
DillerXX
2004-02-04 17:33
2004.04.11
Закачка файлов


11-1058782440
VitalMoya
2003-07-21 14:13
2004.04.11
TWebBrowser


11-1067408356
<Falcon>
2003-10-29 09:19
2004.04.11
ControlCount &amp; KOL


1-1082487598
KLAUS
2004-04-20 22:59
2004.04.11
HELp строку из файла с LAbel




   Наверх