![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ккак считать видимые на экране данные из БД InterBase в DBGrid [D6, IB5.x]
Джоник © (2003-03-21 12:03:00)Здравствуйте профи!
Помогите с решением проблемки:
Есть БД под InterBase 5.5, необходимо организовать
просмотр и навигацию по таблице из этой БД в компоненте DBGrid,
но сделать это так, чтобы с сервера считывались только записи
которые будет видно на экране в DBGrid"е (чтобы не засорять
трафик сети, поскольку в таблице находиться свыше 100000 записей и есть тенденция к росту этого количества).
Заранее благодарен!
P.S. пробовал компонент TIBClientDataSet, но что-то не получается: происходит последовательное дочитывание данных и добавление к существующим вместо считывания видимого куска данных в DBGrid.
ЮЮ (2003-03-22 06:57:00) [1]>select * from имя_таблицы order by fam, imy, otch
Добавь
WHERE ...
и три поля для ввода условия поиска. И искать надо не листая страницы Грида, а определяя критерии поиска
Джоник (2003-03-21 15:13:00) [2]>zacho © (21.03.03 14:05)
А почему универсальнее? Работает быстрее?
zacho (2003-03-21 14:05:00) [3]
> Roki (21.03.03 13:40)
Должно, должно.. :-)
Дело в том, что наследники TDataSet кэшируют все закачанные данные. Это необходимо, чтобы можно было перемещаться по набору данных в обоих направлениях. Если кэширование не нужно, надо поставить UniDirectional:=true
P.S. Не советую использовать IBQuery. IBDataSet гораздо универсальнее.
Roki (2003-03-21 14:02:00) [4]а какой критерий не тормозливости? 10 тыс за 1 сек или как?
Джоник (2003-03-21 13:58:00) [5]Да ресурсов вроде бы хватает:
Server - Cel1000/128MbRAM/Win2000Prof/Net-10Mbit,
4 пользователя (1 из них раб. на сервере), рабочие станции - не ниже P233/32Mb/Win98/Net-10Mbit
Roki (2003-03-21 13:40:00) [6]нормальная ситуация. не должно тормозить. может у тебя системных ресурсов не хватает...
Джоник (2003-03-21 13:36:00) [7]Roki: компоненты доступа к данным: IBDatabase, IBTransaction, TIBQuery.
данные по запросу:
select * from имя_таблицы order by fam, imy, otch
таблица данных - это список с ФИО и номерами людей.
Lookup полей к ней нет.
Wellslava (2003-03-21 12:36:00) [8]а ты какие исполдьзуешь компоненты доступа к данным?
Roki (2003-03-21 12:27:00) [9]я же не знаю, может у тебя та куча Lookup полей в этой таблице или еще что-то, приведи свою конструкцию: какие компоненты, какие данные перегоняешь и т.д.
Джоник (2003-03-21 12:21:00) [10]>так и есть автоматически...об этом заботится не стоит
а при открытии этой таблицы(при запуске приложения или при актуализации данных во время работы программы) заметно увеличивается время закачки. С этим то как бороться?
Roki (2003-03-21 12:12:00) [11]
> с удалением предыдущей порции.
этим ты трафик не уменьшишь, а только гемороя добавишь...
> я имею ввиду организацию закачки данных порциями из БД на
> сервере в объеме равном количеству строк видимых в DBGrid"е
>
так и есть автоматически...об этом заботится не стоит. Можешь еще посмотреть в сторону Мидас...
Джоник (2003-03-21 12:10:00) [12]Roki:я имею ввиду организацию закачки данных порциями из БД на сервере в объеме равном количеству строк видимых в DBGrid"е на экране и при перемещении за пределы DBGrid"а дочитывание следующей порции данных с удалением предыдущей порции.
Roki (2003-03-21 12:05:00) [13]то что ты видишь на экране, то и скачано...хотя какие компоненты доступа?