Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-1099992632
Stanislav
2004-11-09 12:30
2004.11.21
TMemoryStream В чем отличее методов


1-1099576713
Змей
2004-11-04 16:58
2004.11.21
пустой ли edit1


14-1099910043
GrayFace
2004-11-08 13:34
2004.11.21
Нужна спецификация JavaScript


1-1099685715
Piter
2004-11-05 23:15
2004.11.21
а какой тип вызова у .NET библиотек?


14-1099051141
Knight
2004-10-29 15:59
2004.11.21
Опишите ваши впечатления от первого общения с VMware...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский