Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

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

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

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

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


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

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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


 
Курдль ©   (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;


 
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 записи - я с этим не работал - если можно поподробнее - где его взять? или где почитать? Плиз!


 
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. Ничего дергаться при этом не должно, насколько я понимаю.


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

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



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

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.034 c
1-1082345043
Сергей Бушин
2004-04-19 07:24
2004.05.09
Как вытащить данные из Excel?


9-1069692267
Barlok
2003-11-24 19:44
2004.05.09
Вопрос по выделению объекта в OpenGL в Delphi


7-1079688249
Игорь
2004-03-19 12:24
2004.05.09
Паралельное выполнение функций.


3-1081526271
lockheed_man
2004-04-09 19:57
2004.05.09
Изменение данных в DBGrid


7-1080036182
Victor!
2004-03-23 13:03
2004.05.09
Обмен данными по модему





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский