Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 2
Регистрация: 24.09.2015
Сообщений: 122
1

Поиск по базе данных

23.10.2017, 18:34. Показов 965. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как сделать поиск по базе данных, подскажите пожалуйста? например: дана таблица с столбцами:№,тип мото, название мото, цена мото, страна-изготовитель, год изготовления и размеры(мм). надо организовать поиск отдельно по типу, цене и размерам. Чтобы все остальное из таблицы убиралось(но не удалялось), а оставалось только введенное . + надо сделать чтобы как только пользователь выбирал модель, показывалась фото этого мото.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.10.2017, 18:34
Ответы с готовыми решениями:

Поиск в ADoquery, Delphi, поиск в базе данных
Доброго времени суток многоуважаемые пользователи данного сайта! Есть очень глупая проблема, с...

Реализовать поиск и выбор данных в форме в базе данных Access
Здравствуйте! Подскажите пожалуйста,как реализовать поиск и выбор данных в форме в базе данных...

Поиск в базе данных (поиск далее)
Добрый вечер! Нужна ваша помощь. Делаю поиск по базе, использую компонент AdoTable. В базе есть...

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

23
Модератор
9260 / 6038 / 2379
Регистрация: 21.01.2014
Сообщений: 25,802
Записей в блоге: 3
23.10.2017, 19:45 2
Вот берете любую книжку по БД в Дельфи и читаете...
0
0 / 0 / 2
Регистрация: 24.09.2015
Сообщений: 122
23.10.2017, 20:36  [ТС] 3
За книжки конечно спасибо, но это долго. Мне нужно хотя бы часть кода.
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
23.10.2017, 21:50 4
какую тебе часть? верхнюю? или нижнюю?
посмотри на форуме темы - все обсуждают как работать с БД
вот оттуда и бери код
0
3 / 2 / 1
Регистрация: 09.09.2014
Сообщений: 54
Записей в блоге: 1
27.10.2017, 19:51 5
Например фильтр


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.Edit1Change(Sender: TObject);
begin
      if Edit1.Text = '' then
       Table1.Filtered:=false  // показывает вес список
       else
        begin
         Table1.FilterOptions:= [foCaseInsensitive];//Регистронезависимый
                                                    //номер столбца или по имени 
         Table1.Filter := Table1.Fields[1].FieldName + '='+ QuotedStr(Edit1.Text + '*'); 
         Table1.Filtered:=true;
        end;
 
end;
0
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,252
28.10.2017, 01:30 6
Pioner_, а звёздочка в конце строки фильтра зачем?
0
3 / 2 / 1
Регистрация: 09.09.2014
Сообщений: 54
Записей в блоге: 1
28.10.2017, 08:20 7
Нуу, если такой опытный человек как northener спрашивает...
то вывод один, экзамен, как вы называете новичков...?))
Если не ошибаюсь это для частичного совпадения.
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
28.10.2017, 09:51 8
Цитата Сообщение от Pioner_ Посмотреть сообщение
Если не ошибаюсь это для частичного совпадения.
ошибаешься

для частичного совпадения используют like и %
вот почитай
Фильтрация по частичному совпадению

ЗЫ в ветке по БД 15,5 ТЫСЯЧ тем. неужели еще никто фильтрацию не обсудил? давайте еще одну тему создадим
0
3 / 2 / 1
Регистрация: 09.09.2014
Сообщений: 54
Записей в блоге: 1
28.10.2017, 13:04 9
Что то сомневаюсь что ошибаюсь, это не sql )
без звездочки фильтрация будет если слово полностью
совпадает, а с звездочкой частично но с первого символа!
0
Модератор
9260 / 6038 / 2379
Регистрация: 21.01.2014
Сообщений: 25,802
Записей в блоге: 3
28.10.2017, 16:57 10
Цитата Сообщение от Pioner_ Посмотреть сообщение
без звездочки фильтрация будет если слово полностью совпадает, а с звездочкой частично но с первого символа!
Pioner_, а Вы с файловой системой не путаете???
0
3 / 2 / 1
Регистрация: 09.09.2014
Сообщений: 54
Записей в блоге: 1
28.10.2017, 19:04 11
В смысле FAT и NTFS ? Да нет вроде бы...
А что вы заметили что то подозрительное?)
Кхм...однако вернемся к импортным баранам,
то есть к исходнику хотел сказать...А нет, не получается
делфи код вставлять, так что экспериментируйте сами
с звездочкой и без прежде чем...ну вы знаете что.
0
0 / 0 / 2
Регистрация: 24.09.2015
Сообщений: 122
28.10.2017, 20:37  [ТС] 12
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TForm1.Edit1Change(Sender: TObject);
var S: string;
begin
  S:=Form1.Edit1.Text;
 if(Length(s)>0) then
begin
   DataModule3.ADOTable1.Filtered:=False;
   DataModule3.ADOTable1.Filter:='Òèï_ìîòî LIKE ' + #39 + Edit1.Text + '%' + #39;
   DataModule3.ADOTable1.Filtered:=True;
  end
  else
  begin
      DataModule3.ADOTable1.Filtered:=False;
      DataModule3.ADOTable1.Filter:='';
end;
end;
Видает ошибку:
Миниатюры
Поиск по базе данных  
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
28.10.2017, 21:43 13
скажите пожалуйста, кто вас научил делать вот так
Цитата Сообщение от Berserkus Посмотреть сообщение
S:=Form1.Edit1.Text;
if(Length(s)>0) then
зачем вам дополнительная переменная?

Цитата Сообщение от Berserkus Посмотреть сообщение
Видает ошибку:
строку фильтра то напишите нормально
0
0 / 0 / 2
Регистрация: 24.09.2015
Сообщений: 122
28.10.2017, 21:57  [ТС] 14
а как именно?
0
1177 / 419 / 106
Регистрация: 31.03.2012
Сообщений: 1,145
28.10.2017, 22:06 15
Цитата Сообщение от D1973 Посмотреть сообщение
а Вы с файловой системой не путаете?
сам путаешь понятие метасимволов в оболочке (sh, bash, csh [*nix], cmd [windows]) с какой-то файловой системой
а они (метасимволы) есть еще и в таком понятии, как регулярные выражения (perl, python, sed и т.д)
1
3 / 2 / 1
Регистрация: 09.09.2014
Сообщений: 54
Записей в блоге: 1
28.10.2017, 22:28 16
Berserkus Я же привел пример, этот код у меня в десятки программах
работает отлично.
0
1177 / 419 / 106
Регистрация: 31.03.2012
Сообщений: 1,145
28.10.2017, 23:28 17
Цитата Сообщение от Pioner_ Посмотреть сообщение
Нуу, если такой опытный человек как northener спрашивает...
то вывод один, экзамен,
Цитата Сообщение от Pioner_ Посмотреть сообщение
Я же привел пример, этот код у меня в десятки программах
работает отлично.
Лучше, чем Фаина Раневская, для всех таких "пионэров" никому и никогда не сказать
0
Модератор
9260 / 6038 / 2379
Регистрация: 21.01.2014
Сообщений: 25,802
Записей в блоге: 3
29.10.2017, 07:50 18
Цитата Сообщение от Pioner_ Посмотреть сообщение
Что то сомневаюсь что ошибаюсь
Зря сомневаетесь.
Цитата Сообщение от Pioner_ Посмотреть сообщение
без звездочки фильтрация будет если слово полностью совпадает, а с звездочкой частично но с первого символа!
Вот рабочий код, который делает то, что Вы хотели. И где в нем хоть одна "звездочка"?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var fName: string; //Переменная для хранения имени поля БД
 
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
//Выбор поля для фильтрации и получение его имени, как оно задано в БД
 fName := ADOTable1.Fields[ComboBox1.ItemIndex + 1].FieldName;
//Разблокировка поля ввода фильтра
 Edit1.Enabled := true;
end;
 
procedure TForm1.Edit1Change(Sender: TObject);
begin
//Отмена фильтрации
 ADOTable1.Filtered := false;
//Если поле ввода пусто - выходим
 if Length(Trim(Edit1.Text)) = 0 then Exit;
//Накладываем новый фильтр
 ADOTable1.Filter := Format('%s LIKE '#39'%s%%'#39, [fName, Edit1.Text]);
//Активируем фильтрацию
 ADOTable1.Filtered := true;
end;
Миниатюры
Поиск по базе данных   Поиск по базе данных  
0
3 / 2 / 1
Регистрация: 09.09.2014
Сообщений: 54
Записей в блоге: 1
29.10.2017, 10:47 19
Блин, только хотел помочь человеку которому советовали читать книжки и вот те на...
И, человеку видать до лампочки) надо отвыкнуть от этой вредной привычки.

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

Этот код и разновидности я успешно применяю в своих приложениях в том числе
и каскадных поисках и, не я автор этого кода...

Кстате, заголовки можно перетащит необязательно использовать ComboBox

Добавлено через 57 минут
Joeymax, Стиль общения у меня такой, так сказать оригинальный)
0
Модератор
9260 / 6038 / 2379
Регистрация: 21.01.2014
Сообщений: 25,802
Записей в блоге: 3
29.10.2017, 12:31 20
Цитата Сообщение от Pioner_ Посмотреть сообщение
почему вы вместо того чтобы хоть раз проверить простенький код который я привел, все упорно
вцепились в критику
Потому, что Ваш код, не работает, по крайней мере при использовании технологии ADO (см. скрины).
Поиск по базе данных
Поиск по базе данных
Поиск по базе данных


Судя по присутствию строчки Table1.FilterOptions := [foCaseInsensitive]; Вы работаете с BDE, про работоспособность Ваших "звездочек" в Парадоксе сейчас сказать не могу.
0
29.10.2017, 12:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2017, 12:31
Помогаю со студенческими работами здесь

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

Поиск по базе данных
Мир всем и привет ! дорогие форумчане, помогите пожалуйста понят: почему текстовый работает...

Поиск по Базе данных
У меня есть база данных хочу сделать поиск по ФИО не понимаю как скрин приложу

Поиск в Базе Данных
Как сделать поиск в Delphi 7? Я использую DBGrid


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru