Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Портирование кода с BDE на ADO [D5, D7, MS Access]


Виталий Панасенко ©   (2005-12-15 18:05:00) 

Пытаюсь перейти с БДЕ на АДО :-). Вопрос такого характера: под БДЕ отлично работала связка мастер-деталь.. Для АДО тоже работает.. Но есть одно "но" - курсор для ADOTable (знаю, что лучше (правильнее) использовать ADODataSet, но так быстрее.. вроди бы) нужно устанавливать на клиенте.. Иначе имеем "Текущий проводник не поддерживает необходимые интерфейсы для сортировки и фильтрации"...Но клиентский курсор "тормозит" при открытии детали, если там более-менее записей (около 100-300)...Да и в помощи описано, что максимальная скорость при работе с MS Access достигается при серверном курсоре и TableDirect=True... Использую JET..
Или это не обойти ?


Виталий Панасенко   (2005-12-16 09:18:00) [1]


>  "ADOTable (знаю, что лучше (правильнее) использовать ADODataSet,
>  но так быстрее..",  быстрее для чего? переноса с BDE на
> ADO? возможно, хотя и сомнительно

Но ведь этот компонент вроди как и предназначен для быстрого портирования с БДЕ на АДО ? Или я ошибаюсь.. Да, используя ADODataSet скорость выросла.. Но тут еще одни "гробли" - Lookup-поля.. Видимо, тормоза из-за них...Кеширование включить надо


sniknik   (2005-12-15 18:23:00) [2]

либо серверный курсор и индексы либо локалный и "клиентская"(на клиенте) сортировка.

> Или это не обойти ?
если имеется виду использование свойств технологии неприсуших ей, то да не обойти.

если "обойти" тормоза... то нефиг делать,  100-300 записей это практически ничто... (0,001 сек. на запрос с выборкой такого количества. если у тебя намного больше... то чтото не так)
и тутже видим что не так (одно из возможных) -> "ADOTable (знаю, что лучше (правильнее) использовать ADODataSet, но так быстрее..",  быстрее для чего? переноса с BDE на ADO? возможно, хотя и сомнительно. для непосредственно работы с базой однозначно не быстрее.
в детальном ADODataSet правильный запрос пропиши и посмотри разницу.

плюс проверь чтобы связываемые поля имели индексы (запрос с полным сканом тоже не быстрый).


Наверх

Титульная страница Поиск, карта сайта Написать письмо