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

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

Скорость открытия таблицы (запроса). [D5, Win95/98]


Саня ©   (2003-10-21 07:08:00) 

Здравствуйте.
Господа, переполз я с Access на Delphi и при переписывании базенки столкнулся с таким моментом:
К примеру:
есть таблица "Абоненты" (свыше 300000 записей) в mdb-шной базе.
Если ее открыть(или составить запрос) в Access то ... брык и готово :)
Можно ли по этому "принципу" открывать ее в delphi-ском приложении.

with ADOQuery1 do begin
Close;
with SQL do begin
Clear;
Add("SELECT *");
Add("FROM Abonent");
Add("WHERE AName Like "Иванов%"");
end;
OPEN;
end;

К примеру, первичное выполнение вышеуказанного запроса длится свыше 5 сек при индексированном "AName".

А хочется: разместить на форме DBGrid, при открытии формы скачать порцию данных, показать в гриде,
и при скролинге в DBGrid чтобы осуществлялась подкачка.
Можно ли сие реализовать? Или не маятся дурью?


Саня   (2003-10-23 10:23:00) [1]

>Zacho
Уточняю, грид с 300000 нафиг не нужен. Есть таблицы с таким количеством записей.
Простой пример: Телефонный справочник. Выборка по фамилии Иванов.
Мне была нужна всего лишь скорость отображения результатов выборки.

О негативных последствиях использования серверных курсоров ознакомлен.
И так слегка расстроен, поэтому не плюйте в спину, господа :)


Zacho   (2003-10-23 08:58:00) [2]


> Саня (21.10.03 07:08)

А теперь еще подумай: нафига пользователю грид с 300000 записями ? Что он с ними делать будет ? Скроллировать туда-сюда несколько часов, тупо уставившись в монитор ?


Саня   (2003-10-23 01:31:00) [3]

Лоханулся я, о народ. Поленился хелп почитать про курсоры. Исправился.


kavlad   (2003-10-21 09:44:00) [4]

Если память не изменяет, то спасет асинхронное соединение:

with MyADOConnection do
begin
Close;
ConnectOptions := coAsyncConnect;
Open;
end;


Наверх

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