Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Matrix9307
0 / 0 / 0
Регистрация: 05.03.2013
Сообщений: 7
1

Поиск по БД

17.03.2013, 20:08. Просмотров 556. Ответов 8
Метки нет (Все метки)

Здравствуйте, есть такая задача. Я имею: БД в IBConsole, приложение в Delphi к которому подсоеденена БД. Мне нужно организовать ПОИСК в таблице по первичному ключу. На форме есть компоненты (IBTable, Sourse, DBGrid, edit, button). -Есть такая таблица - Заказчик (ФИО, ИНН, РАЙОН), ФИО-первичный ключ. Поиск по ФИО нужно сделать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2013, 20:08
Ответы с готовыми решениями:

Поиск по сайту: не могу разобраться, как делать поиск по нескольким полям
поиск по одному полу осуществляется вот так: SELECT * from tablepart WHERE...

QRegExp поиск всех строк которые соответствуют шаблону и поиск их длины
//поиск строк типа ] QRegExp reg("\\\\]"); QString text = "test ] bla ]"; ...

Поиск максимальных компонент в виде подрограмм, поиск значения функции
Очень нужна помощь, срочно. Хотя бы просто помогите с алгоритмом, код написать...

Вирус в хроме заменил поиск по умолчанию на поиск маил ру + реклама
Здравствуйте,при поиске в гугле перекидывает на маил.ру. + Появилась реклама в...

Поиск символа в строке. Как осуществить поиск в обратном направлении
Всем доброго времени суток. Вопрос такой: как осуществить поиск в обратном...

8
arni
906 / 871 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
17.03.2013, 20:42 2
Смысловые поля, а тем более те, которые содержат данные, могущие меняться, не должны быть первичными ключами.
Люди женятся, разводятся, меняют пол под ножом хирурга - все это приведет к тому, что ФИО, и следовательно PK будет менять, чего быть не должно! Я уже молчу про то, что при вводе данных можно банально опечататься, и опять же потребуется исправление данных в PK.
Числовое поле ID - вот это подходящий первичный ключ.
А на ФИО можете повесить уникальный ключ, но никак не первичный.
1
Matrix9307
0 / 0 / 0
Регистрация: 05.03.2013
Сообщений: 7
18.03.2013, 00:31  [ТС] 3
Да я ошибся. первичный ключ - ИНН.
0
rdama
567 / 290 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
18.03.2013, 09:02 4
Цитата Сообщение от arni Посмотреть сообщение
А на ФИО можете повесить уникальный ключ
Нельзя!
Иванов Иван Иванович 1956 года рождения != Иванов Иван Иванович 1996 года рождения
Уникальный индекс только с датой рождения(и то сохраняется вероятность полный тезка с совпадением даты рождения) либо вовсе отказаться от такого УНИКАЛЬНОГО индекса.
Поиск по ИНН не самый удобный вариант! Ошибся в цифре, не помню номер, т.е. если мы исходим из обслуживания граждан,то лучше ФИО.
И уточнение датырождения в случае множественности результата.
Это дребедень а не таблица Заказчик (ФИО, ИНН, РАЙОН).
Посмотрите какие данные заводятся при создании контрагента типа физ лица в тойже 1С.
+ человек может сменить ИНН утратив старый. Так же человер не привязан к району. Он может перемещаться, а он при этом один и тот жечеловек.
0
arni
906 / 871 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
18.03.2013, 09:55 5
Цитата Сообщение от rdama Посмотреть сообщение
Нельзя!
Будем исходить не из голой теории, а из того, что имеем.
А имеем то, что ФИО - уже PK. Т.е. видимо задача не про паспортный стол или огромную федеральную БД. Видимо речь о чем-то маленьком, прикладном, а возможно и вовсе лаба/курсач с парой десятков строк в таблице. В таком случае патерны проектирования для больших баз идут лесом, незачем усложнять то, что изначально просто.
А вот вешать PK на ФИО даже в маленьких проектах - это залет. Поэтому и последовал совет про сурогатный PK и UK на ФИО.
0
rdama
567 / 290 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
18.03.2013, 15:59 6
arni, дак вот потому что курсач и нельзя. Если препод неполный олух он это художество не пропустит.
Можно годами идти путем проб и ошибок, опыт мать его так, а можно сразу пойти правильным путем. И вместо блуждания получить результат.
Ваш вариант как раз таки и направляет по длинному пути.
Потому что потом будет работа и мысль, а вот я в курсоче сделал так да и тут прокатит, на первой сотне, а потом все писец костыли и велосипеды.
А опущение очевидных вещей возможно лишь в беседе со спецами. Если есть новечки надо жевать.
0
arni
906 / 871 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
18.03.2013, 16:34 7
Цитата Сообщение от rdama Посмотреть сообщение
Если препод неполный олух он это художество не пропустит...
Упоминание IBConsole, а значит либо глючного/старого Interbase 6.0, либо, что еще хуже, платного Interbase v>=6.0 вместо Firebird, и упоминание TIBTable вместо TIBQuery/TIBDataSet говорит мне, что в этом датском королевстве хоть и лучше чем в других (не BDE и Paradox), но тоже грустно.
0
Matrix9307
0 / 0 / 0
Регистрация: 05.03.2013
Сообщений: 7
18.03.2013, 19:50  [ТС] 8
Ребят, а по делу можете помочь или как. Есть БД на IBConsole, в ней таблица Заказчик (ФИО, ИНН, Район), где ИНН- первичный ключ. как через делфи организовать поиск по этой таблице(по ИНН)?

Добавлено через 1 минуту
Мне просто нужен код и как его реализовать. а вот эта вся теория вооооообще не важна. главное чтобы работало
0
rdama
567 / 290 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
19.03.2013, 00:49 9
Ну для поиска у датасета есть 2 метода locate и lookup набираешь и F1 там все доступно написано.
Ну или SQL.
0
19.03.2013, 00:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2013, 00:49

Поиск символа не могу переделать под поиск сочетания символов
Есть код программы на поиск и замену по одному символу.Не могу понять, как...

Составление кубиков, поиск в пространстве состояний, монотонный поиск в ширину [Turbo Prolog]
Помогите решить задачу с кубиками в турбо прологе с несложной визуализацией. ...

Реализовать поиск заданного файла в древе каталогов и поиск указанной информации в этом файле
Имеется много папок в каждой папке есть файл proc.txt, как можно по всем этим...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru