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

Вниз

Оптимальный поиск...   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.036 c
14-1099396577
inic
2004-11-02 14:56
2004.11.21
Общий вопрос о создании БД


14-1099214093
Гиви с рынка
2004-10-31 12:14
2004.11.21
лучший хард 200 гб (ide)


1-1099944660
ser_ega
2004-11-08 23:11
2004.11.21
Form


1-1099585624
heady
2004-11-04 19:27
2004.11.21
выбор папки с кнопкой "создать"


3-1098693352
Term
2004-10-25 12:35
2004.11.21
Проблема с запросом