Форум: "Базы";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c