Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

БД [D7, IB4.x, IB5.x, IB6.x]


agfhg ©   (2007-01-22 16:48:00) 

Есть БД. Есть список клиентов, задача:1000 клиентов, надо осуществить поиск по ФИО, год рождения! Например Сидоров ВВ на экране  должен показать все  фамилии  Сидоровых.


MsGuns   (2007-01-22 23:22:00) [1]

>FIL-23 ©  

Дважды сказанная глупость умностью не станет ;)


Anatoly Podgoretsky   (2007-01-22 19:59:00) [2]

> Ega23  (22.01.2007 19:39:13)  [13]

Как чего - вставить как параметр для поиска (выборки) всех Сидоров, и ВВ больше не смущает


Ega23   (2007-01-22 19:39:00) [3]


> Copy('Сидоров ВВ', 1, 7) + '%'


И чего?


Anatoly Podgoretsky   (2007-01-22 19:38:00) [4]

> Ega23  (22.01.2007 18:11:11)  [11]

Copy('Сидоров ВВ', 1, 7) + '%'


Ega23   (2007-01-22 18:11:00) [5]


> Так ему все равно В.В. ВВ. ВВВВВВ ему нужны все Сидоровы
> хоть Сидоров qq


Ты прекрасно понял, что я имел ввиду. Если это автору не нужно - ну и фиг с этими ВВ. А сама по себе проблема весьма интересна...


zdm   (2007-01-22 18:09:00) [6]


> agfhg   (22.01.07 16:48) 
> Есть БД. Есть список клиентов, задача:1000 клиентов, надо
> осуществить поиск по ФИО, год рождения! Например Сидоров
> ВВ на экране  должен показать все  фамилии  Сидоровых.


zdm   (2007-01-22 18:08:00) [7]

Так ему все равно В.В. ВВ. ВВВВВВ ему нужны все Сидоровы хоть Сидоров qq


Ega23   (2007-01-22 17:37:00) [8]


> Может я не догнал, а в чем трабла?


А трабла в том, что:
1. Неизвестно, ФИО разбито по трём полям, или одно поле, или это именно фамилия + пробел + инициалы без разделителей?
2. Анализ инициалов: ВВ и В.В. - разные вещи, или одно и то же?

Сидоров ВВвводится в одном контроле без маски, с маской или в разные поля (поле = TCustomEdit)

Как будет выглядеть запрос с like в таком ключе?

Так что задача не совсем тривиальна...


zdm   (2007-01-22 17:25:00) [9]


> Ega23 ©   (22.01.07 17:19) [6]

Может я не догнал, а в чем трабла?


Ega23   (2007-01-22 17:19:00) [10]


> Например Сидоров ВВна экране  должен показать все  фамилии
>  Сидоровых.


Между прочим, вот с этим ВВ задача не так проста, как кажется с первого взгляда.


zdm   (2007-01-22 17:16:00) [11]

На всякий случай.  IB чувствителен к регистру ввода (Сидоров и сидоров две разные вещи) Если текст вводится, например из TEdit.,  помогает ..Like.. AnsiUpperCase(Edit1.text) or ...Like... AnsiLowerCase(Edit1.text).


FIL-23   (2007-01-22 17:10:00) [12]

понимаешь это не поиск, а фильтрация:

procedure TForm1.FormCreate(Sender: TObject);
begin
table1.FilterOptions:=[focaseinsensitive];
table1.Filtered:=false;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
table1.filtered:=true ;
table1.filter:='familia='''+'сидоров'+'''datarogdenia='''+datetostr(datetimepicker1.date)+''''
end;


FIL-23   (2007-01-22 17:10:00) [13]

понимаешь это не поиск, а фильтрация:

procedure TForm1.FormCreate(Sender: TObject);
begin
table1.FilterOptions:=[focaseinsensitive];
table1.Filtered:=false;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
table1.filtered:=true ;
table1.filter:='familia='''+'сидоров'+'''datarogdenia='''+datetostr(datetimepicker1.date)+''''
end;


Jeer   (2007-01-22 17:05:00) [14]


> agfhg   (22.01.07 16:48)


http://www.citforum.ru/database/sql_kg/index.shtml


MsGuns   (2007-01-22 16:55:00) [15]

LIKE если запросом
Если в открытом датасете:
with TIBDataSet1 do
 begin
  DisableControls;
  Locate('FIO',FieldByName('FIO).AsString,[loPartial]);
  EnableControls;
 end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо