![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение данных с MS SQL блоками [D7, MSSQL]
Санёк © (2004-04-28 16:49:00)Уважаемые мастера! Подскажите как реализовать чтение данных с MS SQL Server блоками, допустим по 100 записей. Можно ли как то под это заточить ADODataset, чтобы при скроллинге в гриде данные подчитывались с сервера, а не тащились все целиком на клиента. Установка свойства MaxRecords в ADO, или команда Set RowCount в MS SQL позволяет считывать нужное количество записей, но как позиционировать этот блок на другие записи, т.е. реализовать пролистывание вперед, назад например по 100 записей. Можно ли перекрыть методы:
function GetRecNo: Integer; override;
function GetRecord(Buffer: PChar; GetMode: TGetMode; DoCheck: Boolean): TGetResult; override;
function GetRecordCount: Integer; override;
в ADODatasete, если так можно, то какие методы нужно перекрывать еще для правильной работы.
Санёк (2004-04-28 19:25:00) [21]Триал не знаю, если хочешь полный могу скинуть
Ega23 (2004-04-28 19:15:00) [22]Кстати о Quantum Grid: у них есть какой-нибудь триал? Чтобы боссу показать, а то он просто так 100 бакинских жмётся выкладывать
Курдль (2004-04-28 19:06:00) [23]
> Можно ли как то под это заточить ADODataset, чтобы при скроллинге
> в гриде данные подчитывались с сервера, а не тащились все
> целиком на клиента.
У TdxDBGrid (от Quantum Grid) в DBOptions есть флаг PartialLoad.
Но тянет ли он частями из базы, или только с датасэта - не проверялось (однако, на миллионе записей шевелится шустро).
Ega23 (2004-04-28 18:55:00) [24]Ну, брат, это я - пас. Даже не знаю так сходу...
попробуй заказчика переубедить :о)
Санёк (2004-04-28 18:52:00) [25]Вот - вот как раз вопрс требований заказчика, поносмотрелись на разные ERA Financials и хотят чтоб как там, а как это сделать? Хотя бы в какую сторону идти?
Ega23 (2004-04-28 17:58:00) [26]Можно сделать как угодно. Вопрос временных затрат и требований заказчика. Я изложил только пример из собственного опыта. Пользователям нужна стандартная система фильтрации + возможность "расширенного" поиска. Если ты это реализуешь, то мигом избавишься от кучи проблем.
Санёк (2004-04-28 17:44:00) [27]Дело в том, выборку предпологается помещать в Lookup, и уже по выбору записи, например сотрудника, заполнять автоматически поля организации и подразделения. Подобный Lookup(Zoom) реализован в достаточно распространненой системе ERA Financials, где записи подчитываются по 100.
Ega23 (2004-04-28 17:32:00) [28]А просто ограничить выборку не судьба? Да, должен быть способ получения ВСЕЙ выборки, но реально пользователю требуется получить какие-то КОНКРЕТНЫЕ данные.
Пример моей программы: есть список персонала. Каждый сотрудник характеризуется следующими основными параметрами: ФИО, наличие пропуска, Организация, Подразделение, Статус (Временный/Постоянный). Всего сотрудников - порядка 6000. Данных при всей выборке тянется очень много (запрос - 5 сек.). Но, если ограничить запрос хотя бы Организацией и Подразделением, то макимальный набор записей будет уже не более 400.