Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2016, 19:07   #1
Бахтияр Оралов
Пользователь
 
Регистрация: 03.04.2015
Сообщений: 25
По умолчанию Как сделать поиск по БД через кнопку и ADOQuery SQL? - Delphi БД

в интернете не смог найти подробного описание кода и как подключать Query к БД...нужно сделать поиск по ФИО в таблице пациенты.

я создал на форму query1 and ADOquery1 and Datasource..потом adoquery есть свойство connection string в нем путь к бд драйвер выбрал ...а свойство в sql незнаю как писать..query связал с datasource..мне нужно чтобы когда я писал в edit слова или буквы,то когда я нажимаю на кнопку поиск и мне выводило поиски..проограмму с кодом скинул сверху.
Изображения
Тип файла: png Screenshot_1.png (81.5 Кб, 171 просмотров)
Вложения
Тип файла: 7z DELPHI.ACCES.7z (986.8 Кб, 36 просмотров)
Бахтияр Оралов вне форума Ответить с цитированием
Старый 02.11.2016, 20:01   #2
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Поиск:
Код:
procedure TForm1.Edit1Change(Sender: TObject);
begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('SELECT * FROM Таблица1 WHERE ФИО LIKE "%'+Edit1.Text+'%"');
  ADOQuery1.Open;
end;
Replicant вне форума Ответить с цитированием
Старый 02.11.2016, 22:26   #3
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Сообщений: 594
По умолчанию

Не проще ли:
Код:
procedure TForm1.Edit1Change(Sender: TObject);
begin
Query1.Locate('FIO', Edit1.Text, [loCaseInsensitive, loPartialKey]);
end;
И никаких мерцаний...
kropotkina-alice вне форума Ответить с цитированием
Старый 02.11.2016, 23:03   #4
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Цитата:
Сообщение от kropotkina-alice Посмотреть сообщение
Не проще ли:
Код:
procedure TForm1.Edit1Change(Sender: TObject);
begin
Query1.Locate('FIO', Edit1.Text, [loCaseInsensitive, loPartialKey]);
end;
Это разные вещи, Вы указатель двигаете, я фильтрую таблицу (н/р Ивановых может быть с десяток в базе, показываю всех). Зависит от конечной цели.
Цитата:
Сообщение от kropotkina-alice Посмотреть сообщение
И никаких мерцаний...
Вы о чем? Ничего не мерцает.
Replicant вне форума Ответить с цитированием
Старый 03.11.2016, 10:24   #5
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Сообщений: 594
По умолчанию

И еще - зачем писать две строчки?
Код:
ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add();
Когда это записывается одной:
Код:
ADOQuery1.SQL.Text:=...
kropotkina-alice вне форума Ответить с цитированием
Старый 03.11.2016, 10:52   #6
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Цитата:
Сообщение от kropotkina-alice Посмотреть сообщение
И еще - зачем писать две строчки?
Затем чтобы Вам не было скучно и было чем заняться.
Вы лучше скажите, что у Вас там мерцает?
Replicant вне форума Ответить с цитированием
Старый 03.11.2016, 19:46   #7
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
мне нужно чтобы когда я писал в edit слова или буквы
можно так запрос по несколько поля . зависимость выбора RadioButton
Код:
 procedure TPacient.Button1Click(Sender: TObject);
begin
 if RadioButton1.Checked = true then
  begin
     with ADOQuery1 do
     begin
       SQL.Clear;
       SQL.Add(' SELECT ля-ля  Where [Код_пациента]  like....');
       Open;
     end;
  end
  else
  if RadioButton2.Checked = true then
  begin
     with ADOQuery1 do
     begin
       SQL.Clear;
       SQL.Add(' SELECT ля-ля  Where ФИО  like.....');
       Open;
     end;
  end
  else
  if RadioButton3.Checked = true then
  begin
     with ADOQuery1 do
     begin
       SQL.Clear;
       SQL.Add(' SELECT ля-ля  Where Улица like like .....');
       Open;
     end;
  end;
end;

end.

Последний раз редактировалось xxbesoxx; 03.11.2016 в 19:51.
xxbesoxx вне форума Ответить с цитированием
Старый 03.11.2016, 19:49   #8
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от kropotkina-alice Посмотреть сообщение
Не проще ли:
Код:
procedure TForm1.Edit1Change(Sender: TObject);
begin
Query1.Locate('FIO', Edit1.Text, [loCaseInsensitive, loPartialKey]);
end;
И никаких мерцаний...
Фильтрация и SQL запрос "разные вещи" и применяется "разных случаях"
xxbesoxx вне форума Ответить с цитированием
Старый 03.11.2016, 20:27   #9
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Цитата:
Фильтрация и SQL запрос "разные вещи"
вам бы самому для начала разобраться с этим, чтобы таких перлов больше не выпускать )
come-on вне форума Ответить с цитированием
Старый 03.11.2016, 20:38   #10
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
вам бы самому для начала разобраться с этим
Без вас будет очень трудно разобраться .!
-- Я не понимаю ваши бессмысленный ля-ля
-- Не начинай пожалуйста и Я вам не скажу куда вам надо идты .!
На что вы советуйте что я разобрался самому?

Последний раз редактировалось xxbesoxx; 03.11.2016 в 20:40.
xxbesoxx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в Delphi в DBGrid сделать кнопку иванлеон БД в Delphi 4 20.05.2015 15:47
Delphi БД - Поиск через ADOQuery Strangee Помощь студентам 3 23.01.2015 15:13
mysql delphi поиск через adoquery любаша БД в Delphi 2 14.12.2010 09:37
Много уровневый поиск через ADOQuery WALL БД в Delphi 5 19.10.2010 09:46
Как организовать поиск интервала дат через SQL Selena Общие вопросы Delphi 1 14.03.2007 01:25