![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Оптимальный поиск... [D7, Access]
Zif © (2004-10-25 14:14:00)Подскажите такой вопрос: каким способом лучше всего пользоваться для поиска в БД Access? использую ADODadaSet.
Почему задаю такой вопрос - просто в начале я, читая книжки, понял, что надо ADOtable использовать. потом ADOQuery, и сейчас уже ADODataSet (это уже на форуме объяснили)...
из-за этого 3 раза приходилось полностью перелопачивать всю прогу (это уже не считаю 5 раз когда полностью переделывал дизайн)
Опять "читать книжки" чего-то не очень хочется...
Что лучше?
Поиск будет на:
*найти строку с куском текта
*пустое или не пустое поле
выбрать нескольок значений-ссылок (в одном поле будет записано: 1,4,12. цифры - ключевые поля из другой таблицы)
фильтация и т.д. и т.п.
malamba (2004-10-26 10:16:00) [1]А почему нельзя использовать Locate?
DataSource.DataSet.Locate(...)
DataSource указывает на Query или на Table
Ведь это родной метод...
sniknik (2004-10-25 18:26:00) [2]если нужен самый быстрый поиск, то это поиск по индексу - Seek. но вхождений в строку так искать нельзя (индекс не используется).
определился бы действительно, что тебе нужно от поиска.
Zif (2004-10-25 16:30:00) [3]DBGrid я не использую...
Sergey13 (2004-10-25 16:20:00) [4]2[9] Zif © (25.10.04 16:10)
>но все-же разве не удобнее пользоваться каким-то компонентом?
Удобнее чем что?
Поставь ЕхЛибовский грид и ищи в ем че хошь.
http://www.ehlib.com/RUS/default.htm
Zif (2004-10-25 16:13:00) [5]>Это здорово ! Было бы, если не единственный результат работы - >AV .. в kernel32.dll, EInvalidOperation in module X-Films.exe и >т.д. и т.п...........
выдает ошибку? на каком моменте?
Zif (2004-10-25 16:10:00) [6]//>4000 записей,
//Фи.
знаю что это очень мало, но лучше предупредить...
спасибо за ответы, сейчас буду смотреть, но все-же разве не удобнее пользоваться каким-то компонентом? FindQuery вроде используется?
что посоветуете?
с компонентом удобнее, тем более что довольно много кода надо будет писать (само кол-во не пугает, важно если я захочу переделать базу, то тогда будут проблемы)
Johnmen (2004-10-25 16:08:00) [7]>Zif © (25.10.04 15:28) [5]
>если все еще не понятно - вчера запустил свой проект в инет
Это здорово ! Было бы, если не единственный результат работы - AV .. в kernel32.dll, EInvalidOperation in module X-Films.exe и т.д. и т.п...........
msguns (2004-10-25 16:03:00) [8]http://www.delphimaster.ru/cgi-bin/forum.pl?id=1098178436&n=1
Sergey13 (2004-10-25 16:02:00) [9]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-)
ЗЫ: Дай определение "оптимальности" поиска.
Zif (2004-10-25 15:28:00) [10]Итак: Способ 1
поля:
Иванов
Петров
Сидоров
Сидорова
записываю в поле "оро" и показывает только Сидоров и Сидорова
4000 записей, не забывайте! + поиск все в одном - сразу по нескольким полям
Способ 2:
Найти все поля, которые имеюи какое-то значение (например есть Bitmap или нет. есть текст в этих полях или нет)
Способ 3:
к примеру 2 таблицы: КОНТАКТЫ и ГОРОДА. в поле Город таблицы КОНТАКТЫ записываются поля из таблицы ГОРОДА. причем городов должно быть несколько: Москва, Питер... от этого и поля 1,3,4,34,76.
если все еще не понятно - вчера запустил свой проект в инет (радеюсь модераторы не сочтут это сообщение грубой рекламой, хотя это и есть реклама) поэтому смотрите - www.X-SOFTix.com
там думаю все будет понятно. весит прога 3Мб и 5Мб
Vlad (2004-10-25 15:00:00) [11]
> Zif © (25.10.04 14:39) [2]
Ты б хоть поподробнее объяснил какой именно поиск тебя интересует. А может не поиск, а просто выборка?
Что значит "найти строку с куском текта", для чего ???
А вот это:
> в одном поле будет записано: 1,4,12. цифры - ключевые поля из другой таблицы
извини, лажа.
Johnmen (2004-10-25 14:50:00) [12]Понятно...:(
Изучение Дельфи за 21 день, Изучение баз данных за 14 дней, Сотворение мира за 7 дней...
Ты просто Бог !
Посмотрел бы для начала определение Базы Данных...
Zif (2004-10-25 14:39:00) [13]знаю, читал инфу...
просто ответ:
FindQuery? или что другое? Locate как понял не подойдет - база на 4000 записей
или что-то другое...
проектированием занимался, только "слова умные" уж извени не знаю - обычно сам с собой общаюсь или на форуме - один проект поддержаваю. и изучать все обо всем просто нет времени... за 3 дня изучил сайтостроительсво, рекламу, форумы, регистрацию домена - вообще дел хватает.
Johnmen (2004-10-25 14:23:00) [14]Все-таки почитай про проектирование БД. Чтобы не было мучительно больно за "в одном поле будет записано: 1,4,12. цифры - ключевые поля из другой таблицы"
:)
А поиск в наборе данных - бегаешь по нему и ищешь...