Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Вниз

Как взять значение DataSet по заданному номеру строки грида?   Найти похожие ветки 

 
Inoemy   (2005-02-25 14:16) [0]

Не могу решить следующую задачу:
есть DBGrid в котором отображается набор данных
нужно взять значение некоторого поля записи, которая отображена в гриде в строке с определенным номером.... RecNo не подходит, т.к. в гриде данные могут быть смещены скролом


 
Sergey13 ©   (2005-02-25 14:21) [1]

>Как взять значение DataSet по заданному номеру строки грида?
Как правило, это достаточно странная (хотел написать другое слово, но сдержался 8-) задача.


 
Anatoly Podgoretsky ©   (2005-02-25 14:21) [2]

А что такое номер строки в гриде?


 
Inoemy   (2005-02-25 14:33) [3]

В Датасет слишком много записей... они постоянно меняются... появляются новые. Нужно рефрешить грид...(при каждом скроле вверх и вниз и периодически из-за изменений другими пользователями) но полностью на все записи- слишком дорого :) поэтому я хочу брать селектом только часть, причем с учетом скрола и т.п

вот запрос.... но вот айДи документа (верхнего в гриде или нижнего зависимо от направления скрола) как взять? количчество строк я беру....

select top 38 * from Invoices(NOLOCK) where created between @pstart and @pend and created<= @psearchVal and ( created !=  @psearchVal or doc_id <= @psearchDoc) order by created desc


 
Sergey13 ©   (2005-02-25 14:38) [4]

2[3] Inoemy   (25.02.05 14:33)
>В Датасет слишком много записей...
Вот тут собака и зарыта. Давай узеру не все, а только нужное.


 
Inoemy   (2005-02-25 14:57) [5]

Я и даю только то что должно влезть в грид.... плюс 1 запись вниз или вверх... проблемма в определении первой или последне записи в будущем наборе.... смотри внимательно запрос...


 
Digitman ©   (2005-02-25 15:01) [6]


> проблемма в определении первой или последне записи в будущем
> наборе


первая запись - first-метод
последняя запись - last-метод

чего тебе еще надобно, старче ? какие нафих RecNo, если dynaset ?


 
Sergey13 ©   (2005-02-25 15:04) [7]

2[5] Inoemy   (25.02.05 14:57)
>Я и даю только то что должно влезть в грид
Более чем странный критерий отбора.

>смотри внимательно запрос...
Видал я такие вопросы. Не ты первый.


 
Inoemy   (2005-02-25 15:19) [8]

мне нужно по номеру строки в гриде взять даннЫе из набора данных :-)


 
Anatoly Podgoretsky ©   (2005-02-25 15:30) [9]

После [3] понятно о каких строках ты говоришь. Но сам подход не верный, поищи лучше другой критерий ограничения количества возвращаемых строк, чем количество строк в гриде, задача сразу станеть простой и стабильной.


 
Digitman ©   (2005-02-25 15:32) [10]


> нужно по номеру строки в гриде взять даннЫе из набора данных  


есть такое понятие  - "текущая запись"


 
Inoemy   (2005-02-25 15:40) [11]

ну все равно спасибо... ;-)


 
ЮЮ ©   (2005-02-28 03:56) [12]

>но вот айДи документа (верхнего в гриде или нижнего зависимо от направления скрола) как взять?

DBGrid имеет в своем составе DataLink (правда он Protected в стандартном, но, надеюсь, уже умеешь достучться до protected свойств), который и есть "буфер" отображаемых в гриде записей.

P.S. Смотри в исходниках DrawCell, как грид перерисовывает все видимые записи датасета, не "скроллируя" при этом его самого.



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

Форум: "Базы";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.051 c
9-1104767109
FRick
2005-01-03 18:45
2005.03.27
GLScene_манипуляция ланшавтом!


3-1109784081
Arnold
2005-03-02 20:21
2005.03.27
Как узнать количество записей в таблице??


1-1110468098
KLEVO
2005-03-10 18:21
2005.03.27
Графика в TStringGrid


1-1110980092
WELLiON
2005-03-16 16:34
2005.03.27
Ошибка в реализации очереди?


4-1108577833
mordush
2005-02-16 21:17
2005.03.27
Процессы в системе





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский