Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.04.2008, 18:13
Аватар для killpretty
killpretty killpretty вне форума
Прохожий
 
Регистрация: 04.11.2007
Сообщения: 33
Репутация: 10
Восклицание Фильтр данных в DbGrid

Плиииз,подскажите,как осуществлять поиск в таблице по первой букве фамилии,например.Необходимо в окне поиска при вводе первой буквы Фамилии таблица выдавала список Фамилий на эту букву..Я нууу просто не знаю..Развожу руками!
Ответить с цитированием
  #2  
Старый 12.04.2008, 18:28
shaman shaman вне форума
Новичок
 
Регистрация: 19.07.2007
Сообщения: 65
Репутация: 5
По умолчанию

Код события OnChange у компонента FilterFamEdit - TEdit (FilterFamEdit - строка поиска)

procedure TStudentForm.FilterFamEditChange(Sender: TObject);
begin
If Length(FilterFamEdit.Text)>0 then
DataModule1.StudentTable.Filtered:=True
else DataModule1.StudentTable.Filtered:=False;
DataModule1.StudentTable.Filter:='Фамилия>'''+Filt erFamEdit.Text+'''';
end;
Ответить с цитированием
  #3  
Старый 12.04.2008, 22:31
MegaPiha MegaPiha вне форума
Активный
 
Регистрация: 24.03.2008
Сообщения: 227
Версия Delphi: Delphi 7
Репутация: 30
По умолчанию

Цитата:
Сообщение от killpretty
Плиииз,подскажите,как осуществлять поиск в таблице по первой букве фамилии,например.Необходимо в окне поиска при вводе первой буквы Фамилии таблица выдавала список Фамилий на эту букву..Я нууу просто не знаю..Развожу руками!

Можно с помощью Query. Наиболее шустрый метод. Используете компонент Query или ADOQuery, смотря с какой базой работаете.
В событие Edit-а OnKeyUp прописываете
Код:
  s:=edit1.text+'%';
  with Query1 do begin
         Close;
         SQL.Clear;
         SQL.Add('SELECT DISTINCT familia FROM Table');
         SQL.Add('WHERE familia LIKE'+quotedstr(s));
         SQL.Add('ORDER BY familia');
         Open;
  end;
где familia - поле таблицы table. Результат можно выводить в любой DB компонент.

Последний раз редактировалось MegaPiha, 12.04.2008 в 22:34.
Ответить с цитированием
  #4  
Старый 12.04.2008, 22:52
Аватар для Zylex
Zylex Zylex вне форума
Прохожий
 
Регистрация: 06.04.2008
Адрес: Сыктывкар
Сообщения: 33
Репутация: 10
По умолчанию

Цитата:
Сообщение от killpretty
Плиииз,подскажите,как осуществлять поиск в таблице по первой букве фамилии,например.Необходимо в окне поиска при вводе первой буквы Фамилии таблица выдавала список Фамилий на эту букву..Я нууу просто не знаю..Развожу руками!

А вот вам реализация.. для образца.
Вложения
Тип файла: zip familia.zip (16.2 Кбайт, 269 просмотров)
__________________
Программирование - стиль жизни
Ответить с цитированием
  #5  
Старый 13.04.2008, 20:49
Аватар для killpretty
killpretty killpretty вне форума
Прохожий
 
Регистрация: 04.11.2007
Сообщения: 33
Репутация: 10
По умолчанию

Эммм...Проблема в том,что я супер-пупер начинающий программер на Делфи,ниже чайника,я полагаю,и SQL-запросами не баловалась ни разу..Если бы поподробнее кто-нибудь с железными нервами и терпением самаритянина смог объяснить на пальцах,была бы благодарна.Заранее спасибо.
Ответить с цитированием
  #6  
Старый 14.04.2008, 11:20
MegaPiha MegaPiha вне форума
Активный
 
Регистрация: 24.03.2008
Сообщения: 227
Версия Delphi: Delphi 7
Репутация: 30
По умолчанию

Цитата:
Сообщение от killpretty
Эммм...Проблема в том,что я супер-пупер начинающий программер на Делфи,ниже чайника,я полагаю,и SQL-запросами не баловалась ни разу..Если бы поподробнее кто-нибудь с железными нервами и терпением самаритянина смог объяснить на пальцах,была бы благодарна.Заранее спасибо.
Какой проект вы делаете? И какую базу вы используете (Paradox, Access и т.д.)?
Ответить с цитированием
  #7  
Старый 15.04.2008, 13:06
Аватар для killpretty
killpretty killpretty вне форума
Прохожий
 
Регистрация: 04.11.2007
Сообщения: 33
Репутация: 10
По умолчанию

Цитата:
Сообщение от MegaPiha
Какой проект вы делаете? И какую базу вы используете (Paradox, Access и т.д.)?


Делаю диплом по здравпункту..Верне пытаюсь делать.База на Paradox.Осваиваю все сама,потому и очень трудно..
Ответить с цитированием
  #8  
Старый 15.04.2008, 13:25
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
Лампочка

Можно еще и так:
Код:
 with dB_Table do
          begin
          SetKey;
          FieldByName('FIO').Value:=DBEdit1.Text;
          GoToKey;
          dB_Table.Edit;
          end;
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #9  
Старый 15.04.2008, 17:13
MegaPiha MegaPiha вне форума
Активный
 
Регистрация: 24.03.2008
Сообщения: 227
Версия Delphi: Delphi 7
Репутация: 30
По умолчанию

Цитата:
Сообщение от killpretty
Делаю диплом по здравпункту..Верне пытаюсь делать.База на Paradox.Осваиваю все сама,потому и очень трудно..
Какие нибудь попытки, наработки есть?
Опишите задачу, поконкретнее. Какие поля (столбцы) должны быть в таблицах, сколько таблиц? Какие должны быть возможности? По каким полям организовывать поиск?
Для таблиц Paradox используйте компоненты из закладки BDE.
Предлагаю, для начала прочитать основы по созданию баз данных. Например поищите книгу Владимира Гофмана и Анатолия Хоменко "Delphi быстрый старт".
Ответить с цитированием
  #10  
Старый 14.04.2008, 11:55
xmuriy xmuriy вне форума
Прохожий
 
Регистрация: 12.04.2008
Сообщения: 16
Репутация: 10
По умолчанию

а еще можно вот так

Пусть имеется набор данных table1, с полем fam которое содержит список фамилий сотрудников. Также в приложении имеется окно редактирования EFam в которое будут вводится символы фамилии.Необходимо организовать ускоренный поиск записи по мере ввода фамилии.
В обарботчик события ONchange окна EFam вставляем оператор
Код:
table1.locate('fam',Efam.text,[IoCaseInsensitive,IoPartialKey]);
По меред ввода символов в EFam курсор будет перемещаться на запись, в которой первые символы значения поля Fam будут совподать с введенными. Соответственно в связанном DBGride активная срока будет также перемещаться по записям.
И побоку все SQL запросы.

Последний раз редактировалось xmuriy, 14.04.2008 в 12:03.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:30.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter