Главная страница
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.015 c
1-55099
The Nobody
2002-06-05 18:01
2002.06.17
Запуск консольной программы без окна


1-55107
DenNNis
2002-06-06 08:17
2002.06.17
PageControl


1-55065
kmc
2002-06-05 18:31
2002.06.17
Как получить версию программы (version info) для этой же программ


1-55161
ЗЛ
2002-06-04 14:50
2002.06.17
Есть StringGrid и у меня в зависимости от того какая команда в яч


8-55227
SimpleMan
2002-01-30 18:19
2002.06.17
MMSystem...