![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Портирование кода с 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 правильный запрос пропиши и посмотри разницу.
плюс проверь чтобы связываемые поля имели индексы (запрос с полным сканом тоже не быстрый).