![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск в базе и создание отчета по результатам поиска... [D7, XP]
M1sT © (2007-03-05 15:32:00)Привет всем =))
Делаю программу, которая осуществляет поиск введенной строки по базам различного формата: mdb, dbf, xls, gdb, db...
Вопросы:
1) Через какие компоненты лучше всего организовать работу с базами(ADO, DBExpress, BDE)?
2) Каким образом лучше организовать поиск строки(SELECT, Locate)?
Ну и пожалуй самый важный для меня вопрос:
К примеру в первой базе я найду три совпадения строки Петров, во второй десять, а в третьей одно.
3) Как мне вывести отчет по поиску, т.е. отобразить все записи в которых упоминается Петров???
Напомню, что поиск производится не по одной базе!!!
P.S. Базы Имеют разную структуру и соответственно разное количество полей...
Заранее благодарен...
MsGuns (2007-03-05 21:08:00) [1]Самое мерзкое во всем этом деле то, что информация ОБ ОДНОМ И ТОМ ЖЕ ОБЪЕКТЕ ХРАНИТСЯ ПО-РАЗНОМУ. Например, в адресной лежит Петров Петр Петрович, в телефонном справочнике - Петр Петров, а где-нибудь там в списках на внеочередную кастрацию П.П.Петров. Вот поди и разберись с этими Петровыми. Так еще не факт, что это ОДИН И ТОТ ЖЕ ПЕТРОВ !
Короче, дело гниль. Надо все "все базки разрушить до основанья, а затем.. новый БД построить, чтоб кто был никем, тот стал бы всем" ;)))
MsGuns (2007-03-05 21:01:00) [2]Похоже на "тяжкое наследие царизма", когда те, кто прежде работал, писали на чем вздумается - в результате полный "ассорти" со всеми вытекающими..
В таких случаях быстро и качественно перевести все "базки" в единую нормализованную толков БД получается редко и приходится изощряться.
Советую для каждой "базки" написать конвертер в "общую", правильно спроектированную. В некоторых случаях этот конвертер будет представлять из себя макрос, скрипт или простейшее приложение по перекачке.
Сервис же клиентский писАть но "номальную" клиент-серверную БД (в данном случае рекомендовал бы MSSQL, т.к. он офисные БД (аксесс, эксель) легко "понимает".
Пока пользователи работают с "базками" регулярно перегонять их данные в серверную (подобие репликации) и как можно скорее пересаживать их на "правильную" базу.
M1sT (2007-03-05 20:39:00) [3]
> Что, информация хранится где попало и как попало ?
>
вот именно!!!
Пример баз:
База №1 Адресная
_______________________________________________________
ФИО Дата/Рожд Нас/Пункт Адрес .....
Петров П.П. 10,10,1971 Иркутск ул.Марата 8-5
Иванов И.И. 11,05,1987 Новосибирск ул.Новая 10-3
.......
База №2 Телефонка
_______________________________________________________
№ Тел Зарегист. на Н/П Улица Дом Квартира
606-501 Петров П.П Иркутск Марата 8 5
651-365 Иванов И.И ...............................
База №3 Авто
_______________________________________________________
Владелец Марка Год.Вып Ном.Знак Пост.на учет
Петров П.П. Toyota CR-V 1999 о666го 12,05,03
.............................
Все поля очень важны, так что к единому виду не удастся привести!!! =(
Так вот, мне и нужно вывести полный отчет по Петровым, поскольку в дальнейшем мне нужно будет сверить результаты отчета с анкетными данными Петрова...
В общем в результате поиска по адресной базе в отчете получилось к примеру 10 Петровых, из этих данных я уже сам буду смотреть по дате рожд и прописке, правильно ли Петров указал свой адрес в анкете. Далее смотрим правильно ли он указал номер телефона в анкете и т.д....
MsGuns (2007-03-05 20:00:00) [4]>Делаю программу, которая осуществляет поиск введенной строки по базам различного формата: mdb, dbf, xls, gdb, db...
Что, информация хранится где попало и как попало ?
>1) Через какие компоненты лучше всего организовать работу с базами(ADO, DBExpress, BDE)?
DBExpress ориентирован на SQL-сервера, Эксель, локалки в его "компетенцию" вроде не входят
ADO и BDE разработаны как универсальные "движки", однако и они не панацея. Если все же хранилища так разнообразны, то стоит, ИМХО, смотреть в сторону OLAP
>2) Каким образом лучше организовать поиск строки(SELECT, Locate)?
Что лучше, пиво или блондинки ?
SELECT является оператором SQL и используется для запросов к серверам, Locate - чисто "клиентский" метод поиска и используется для "быстрого" поиска первой похожей записи в датасете, уже имеющемся на "клиенте",- никаких дополнительных обращений к серверу при этом не происходит (за исключением некоторых случаев, когда курсор НД поддерживается сервером)
>Ну и пожалуй самый важный для меня вопрос:
>К примеру в первой базе я найду три совпадения строки Петров, во второй десять, а в третьей одно.
И что ? Опять пиво и блондинки ?
>3) Как мне вывести отчет по поиску, т.е. отобразить все записи в которых упоминается Петров???
Датасет, куда собираются результаты поисков, что-то типа поисковиков в инете.
А вообще, совершенно неясно что именно надо сделать
Нуб (2007-03-05 17:29:00) [5]
> M1sT ©
если ты такое спрашиваешь , то написать тебе такую прога не судьба
M1sT (2007-03-05 17:17:00) [6]БЛИИИИИИИИИИН ЛЮДИ!!!!!!!!
Ну отнеситесь посерьезнее пожалуйста к вопросу!!!
Мне очень, очень нужно......а вы тут дискуссии про уракаклов, задницы и гланды разводите!!! =(
Нуб (2007-03-05 17:09:00) [7]
> Сергей М. ©
Тому Кайту ;)
Сергей М. (2007-03-05 17:00:00) [8]
> Нуб (05.03.07 16:46) [7]
> что такое уракакл
Тебе ли судить, чудо ?) При твоих-то ньюби-амбициях ?)
M1sT (2007-03-05 16:59:00) [9]
> Про удаление гландов через задницу слышал ?)
>
Нет не слышал =))
> Сергей М. © (05.03.07 16:20) [5]
>
>
Что то я не совсем понял что ты хотел этим сказать!!!
Может то, что я вопросы через это самое задаю?
Или что у меня подход к созданию программы через это самое?
Ну вот собственно продвинутые программеры и нужны на форумах для того что бы у новичков все было не через задницу....=))))
Нуб (2007-03-05 16:46:00) [10]а что такое уракакл ? ;), неужели это новый вид орангутангов ? :)
MsGuns (2007-03-05 16:41:00) [11]>Нуб (05.03.07 16:17) [3]
гы.. а что, уракакл работает со всеми перечисленными СУБД ?
и еще эта.. с обычным гридом никак ?
Сергей М. (2007-03-05 16:20:00) [12]
> M1sT © (05.03.07 16:10) [2]
Про удаление гландов через задницу слышал ?)
И такое бывает) ... Но это не значит, что гланды удаляются средствамизадницы)
Нуб (2007-03-05 16:18:00) [13]дерзай, но предупрежу тебя сразу у тебя ничего не получится если не найдешь себе наставника , так что если ты в одиночку, то тебе х.а.н.а :)
Нуб (2007-03-05 16:17:00) [14]DataSource1: TDataSource;
OracleSession1: TOracleSession;
OracleQuery1: TOracleQuery;
OracleDataSet1: TOracleDataSet;
dxDBGrid1: TdxDBGrid;
****************************
Label1: TLabel; - -- - - -- - основа всего бытия :)
Button1: TButton; - -- - - -- - основа всего бытия :)
Edit1: TEdit; - -- - - -- - основа всего бытия :)
***************************
могут пригодится , ха дерзай ;)
M1sT (2007-03-05 16:10:00) [15]
> Что вообще значит "через" ?
Через, в данном вопросе означает: Через какие компоненты(или с помощью каких компонентов) будет осуществляться работа с базами.....ну ты ведь сам всё понял, а спрашиваешь!!!
> ТЗ есть ?
Это что еще такое??
P.S. ну тут только ТГолова сама то и не справится к ней как минимум нужно еще THands =)))))
Сергей М. (2007-03-05 15:44:00) [16]
> 1)
Через TГолова - лучшее решение
Что вообще значит "через" ?
> 2)
SELECT *
> 3)
ТЗ есть ?