Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.17;
Скачать: CL | DM;

Вниз

ADO   Найти похожие ветки 

 
HDD ©   (2002-05-19 11:48) [0]

Народ делаю телефонный справочник
Есть база данных Access + ADO в ней 56300 записей
Задаю поиск с из Edit с помощью with ADOTable1 do
Locate("ФИО",mxFlatEdit1.Text, [loPartialKey]);
Так вот на 233 пентиуме при вводе первой буквы затуп идет секунд 10-15 может больше и при вводе остальных затупливает секунд на 5 после каждой. Помогите можно ли всё это сделать по быстрее или в какую базу данных на крайняк всё это переделать?
Заранее благодарен Кирилл


 
Desdechado ©   (2002-05-19 13:31) [1]

проиндексировать не хочешь?
и лучше делай поиск по кнопке, а не на Edit.OnChange


 
wicked ©   (2002-05-19 17:47) [2]

еще как вариант поиска - на Edit.OnExit...


 
HDD ©   (2002-05-20 00:15) [3]

А можно по подробнее про индексацию!


 
HDD ©   (2002-05-20 06:21) [4]

Может мне воспользоваться Dbase или Paradox! Как создать такие базы данных?


 
HDD ©   (2002-05-20 06:47) [5]

Помогите пожалуйста


 
Slym   (2002-05-20 07:50) [6]

select * frow data
where Name like Edit.Text*;


 
-=Sergeante=- ©   (2002-05-20 13:38) [7]

При индексации создается отсортированный список значений поля, т.е. отсорт-й по алфавиту, как в тел. стправочнике, или толковом словаре. Из-за этого резко и снижается время поиска записи. В простейшем случае поиск ведется методом деления пополам. На каждой итерации объем данных для поиска сокращается в 2 раза.


 
HDD ©   (2002-05-21 01:01) [8]

Я отсортировал, но толку нету!


 
Johnmen ©   (2002-05-21 09:19) [9]

Все тормоза из-за постепенной, по мере поиска, закачки записей таблицы на клиента.
1. сначала ADOTable1.Last потом поиск
2. или запрос на выборку типа SELECT...LIKE...
3. и использовать DBLookupCombo или аналоги.


 
wicked ©   (2002-05-21 09:23) [10]

2 HDD ©
кстати, а какого типа курсор ты пользуешь?... для вещей типа locate"а используй только клиентские курсоры -> CursorLocation=clUseClient...


 
Lord Warlock ©   (2002-05-21 09:32) [11]


> HDD ©


Чтобы работало быстро, используй парадокс, таблицы можно создать в Desktop-e, или экспортировать из access.


 
John Kayfolom   (2002-05-24 13:34) [12]

Не заморачивайся с базами, используй мощь TADODataSet.
Я сделал так:
ADOConnection.Connected:=True;
ADODataSetAbonent.LoadFromFile( ExtractFileDirApplication.ExeName)+"\phonebook.adtg");
ADODataSetAbonent.Active:=True;
Где phonebook.adtg файло где лежат все телефоны (сделать его просто - в дизайнмоде делаешь ADODataSetAbonent.Active:=True и правой кнопкой SaveToFile)
Да чуть не забыл ADOConnection.ConnectionString:=
"Provider=MSDAOSP.1;Persist Security Info=False" - OLE DB Simple Provider
А после юзай свойство Filter/Filtered для отбора нужной записи. Или Locate.
phonebook.adtg по сравнению с Access базой в два раза компактней.
Одно плохо - READONLY



Страницы: 1 вся ветка

Текущий архив: 2002.06.17;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
1-55096
Dim!S
2002-06-06 09:51
2002.06.17
Перерисовка DBGrid


14-55299
Ulan
2002-05-15 08:28
2002.06.17
Передача и получение данных в/из формы


1-55063
Fiend
2002-06-05 16:10
2002.06.17
Packages


3-55010
AFROLOV
2002-05-23 14:31
2002.06.17
Как доступиться до DBF таблицы?


1-55132
vald
2002-06-04 09:04
2002.06.17
Возможность вертикальной ориентации текста при печати