Форум: "Базы";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
ВнизОптимальный поиск... Найти похожие ветки
← →
Zif © (2004-10-25 14:14) [0]Подскажите такой вопрос: каким способом лучше всего пользоваться для поиска в БД Access? использую ADODadaSet.
Почему задаю такой вопрос - просто в начале я, читая книжки, понял, что надо ADOtable использовать. потом ADOQuery, и сейчас уже ADODataSet (это уже на форуме объяснили)...
из-за этого 3 раза приходилось полностью перелопачивать всю прогу (это уже не считаю 5 раз когда полностью переделывал дизайн)
Опять "читать книжки" чего-то не очень хочется...
Что лучше?
Поиск будет на:
*найти строку с куском текта
*пустое или не пустое поле
выбрать нескольок значений-ссылок (в одном поле будет записано: 1,4,12. цифры - ключевые поля из другой таблицы)
фильтация и т.д. и т.п.
← →
Johnmen © (2004-10-25 14:23) [1]Все-таки почитай про проектирование БД. Чтобы не было мучительно больно за "в одном поле будет записано: 1,4,12. цифры - ключевые поля из другой таблицы"
:)
А поиск в наборе данных - бегаешь по нему и ищешь...
← →
Zif © (2004-10-25 14:39) [2]знаю, читал инфу...
просто ответ:
FindQuery? или что другое? Locate как понял не подойдет - база на 4000 записей
или что-то другое...
проектированием занимался, только "слова умные" уж извени не знаю - обычно сам с собой общаюсь или на форуме - один проект поддержаваю. и изучать все обо всем просто нет времени... за 3 дня изучил сайтостроительсво, рекламу, форумы, регистрацию домена - вообще дел хватает.
← →
Johnmen © (2004-10-25 14:50) [3]Понятно...:(
Изучение Дельфи за 21 день, Изучение баз данных за 14 дней, Сотворение мира за 7 дней...
Ты просто Бог !
Посмотрел бы для начала определение Базы Данных...
← →
Vlad © (2004-10-25 15:00) [4]
> Zif © (25.10.04 14:39) [2]
Ты б хоть поподробнее объяснил какой именно поиск тебя интересует. А может не поиск, а просто выборка?
Что значит "найти строку с куском текта", для чего ???
А вот это:
> в одном поле будет записано: 1,4,12. цифры - ключевые поля из другой таблицы
извини, лажа.
← →
Zif © (2004-10-25 15:28) [5]Итак: Способ 1
поля:
Иванов
Петров
Сидоров
Сидорова
записываю в поле "оро" и показывает только Сидоров и Сидорова
4000 записей, не забывайте! + поиск все в одном - сразу по нескольким полям
Способ 2:
Найти все поля, которые имеюи какое-то значение (например есть Bitmap или нет. есть текст в этих полях или нет)
Способ 3:
к примеру 2 таблицы: КОНТАКТЫ и ГОРОДА. в поле Город таблицы КОНТАКТЫ записываются поля из таблицы ГОРОДА. причем городов должно быть несколько: Москва, Питер... от этого и поля 1,3,4,34,76.
если все еще не понятно - вчера запустил свой проект в инет (радеюсь модераторы не сочтут это сообщение грубой рекламой, хотя это и есть реклама) поэтому смотрите - www.X-SOFTix.com
там думаю все будет понятно. весит прога 3Мб и 5Мб
← →
Sergey13 © (2004-10-25 16:02) [6]2[5] Zif © (25.10.04 15:28)
1.
select * from table_name where field_name like "%оро%"
>4000 записей,
Фи.
>не забывайте!
Угрожаешь?
>+ поиск все в одном - сразу по нескольким полям
and/or в where
2.
select * from table_name where field_name is [not] null
3.
Сам напроектировал - сам и думай. 8-)
ЗЫ: Дай определение "оптимальности" поиска.
← →
msguns © (2004-10-25 16:03) [7]http://delphimaster.net/view/3-1098178436/
← →
Johnmen © (2004-10-25 16:08) [8]>Zif © (25.10.04 15:28) [5]
>если все еще не понятно - вчера запустил свой проект в инет
Это здорово ! Было бы, если не единственный результат работы - AV .. в kernel32.dll, EInvalidOperation in module X-Films.exe и т.д. и т.п...........
← →
Zif © (2004-10-25 16:10) [9]//>4000 записей,
//Фи.
знаю что это очень мало, но лучше предупредить...
спасибо за ответы, сейчас буду смотреть, но все-же разве не удобнее пользоваться каким-то компонентом? FindQuery вроде используется?
что посоветуете?
с компонентом удобнее, тем более что довольно много кода надо будет писать (само кол-во не пугает, важно если я захочу переделать базу, то тогда будут проблемы)
← →
Zif © (2004-10-25 16:13) [10]>Это здорово ! Было бы, если не единственный результат работы - >AV .. в kernel32.dll, EInvalidOperation in module X-Films.exe и >т.д. и т.п...........
выдает ошибку? на каком моменте?
← →
Sergey13 © (2004-10-25 16:20) [11]2[9] Zif © (25.10.04 16:10)
>но все-же разве не удобнее пользоваться каким-то компонентом?
Удобнее чем что?
Поставь ЕхЛибовский грид и ищи в ем че хошь.
http://www.ehlib.com/RUS/default.htm
← →
Zif © (2004-10-25 16:30) [12]DBGrid я не использую...
← →
sniknik © (2004-10-25 18:26) [13]если нужен самый быстрый поиск, то это поиск по индексу - Seek. но вхождений в строку так искать нельзя (индекс не используется).
определился бы действительно, что тебе нужно от поиска.
← →
malamba (2004-10-26 10:16) [14]А почему нельзя использовать Locate?
DataSource.DataSet.Locate(...)
DataSource указывает на Query или на Table
Ведь это родной метод...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.043 c