Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 08.04.2010
Сообщений: 26

Выборка по двум полям.

22.07.2010, 19:57. Показов 2211. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня в таблице есть 2 поля(начальная и конечная остановки). Есть DBLookupComboBox, в котором находятся характеристики из обоих полей. Теперь мне нужно сделать так, чтобы при выборе характеристики в комбо при нажатии кнопки в DBGrid отображались записи, где есть такие характеристики как в поле начальная остановка, так и в поле конечная остановка. Думаю, что надо делать через SQL-запрос, но не знаю как.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.07.2010, 19:57
Ответы с готовыми решениями:

Фильтрация по двум полям
как сделать фильтрацию по двум полям одновременно, запутался с кавычками, помогите ...

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

Фильтр по двум полям через TreeView в ADOTable
Возникла такая проблема, по отдельности оба фильтра работают. но когда фильтрую по одному полю, этот фильтр не врубая фильтрую по второму...

13
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
22.07.2010, 20:08
вот так в выборку попадут те записи, значения двух полей которых совпадают с указанным значением:
C++
1
"select * from tablename where BeginStop = '" + DBLookupComboBox->Text (или KeyValue) + "' and EndStop = '" + DBLookupComboBox->Text (или KeyValue) + "'"
а так хотя бы одно поле содержало указанное значение:
C++
1
"select * from tablename where BeginStop = '" + DBLookupComboBox->Text (или KeyValue) + "' or EndStop = '" + DBLookupComboBox->Text (или KeyValue) + "'"
1
0 / 0 / 0
Регистрация: 08.04.2010
Сообщений: 26
22.07.2010, 20:19  [ТС]
BeginStop и EndStop-это название полей?
То есть описанный Вами код я могу просто повесить на кнопку?
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
22.07.2010, 20:23
Aelin, ну только вам надо указать имя таблицы вместо tablename. ну и поля свои указать, это я так написал для наглядности
1
0 / 0 / 0
Регистрация: 08.04.2010
Сообщений: 26
22.07.2010, 20:27  [ТС]
C++
1
2
3
4
void __fastcall TForm1::Button9Click(TObject *Sender)
{
"select Initial, Final_point_of_route from tab.DB where Initial = '" + DBLookupComboBox3->Text + "' or Final_point_of_route = '" + DBLookupComboBox3->Text + "'";
}
Так? Просто никаких изменений не происходит. Может быть, мне ещё нужно что-то добавить/связать?
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
22.07.2010, 20:32
Aelin, да нет... это я вам указал, что надо поместить в Query->SQL->Text

ну я не знал, что это не так очевидно, вы вообще работали с TQuery или TADOQuery?
1
0 / 0 / 0
Регистрация: 08.04.2010
Сообщений: 26
22.07.2010, 20:45  [ТС]
Lord_Voodoo, изучаю 2-ой день только Практику завтра надо уже сдать.
C++
1
2
3
4
5
6
7
8
void __fastcall TForm1::Button9Click(TObject *Sender)
{
Query4->Close();
Query4->SQL->Clear();
Query4->SQL->Text="select Initial, Final_point_of_route from tab.DB where Initial = '" + DBLookupComboBox3->Text + "' or Final_point_of_route = '" + DBLookupComboBox3->Text + "'";
Query4->Open();
 
}
А как потом сделать? С Query4 у меня связана DataSource5.
Записать что-то вроде:
Form1->DataSource1(связан с Table1)->DataSet=Query4;
?
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
22.07.2010, 20:48
Aelin, нуждно добавить на форму TDataSource, в DataSet ему указать Query4, ну а Dbgird в DataSource указать этот TDataSource, что вы добавили на форму
1
0 / 0 / 0
Регистрация: 08.04.2010
Сообщений: 26
22.07.2010, 21:36  [ТС]
Lord_Voodoo, спасибо!
Но теперь у меня не выводятся хар-ки других полей. Я так понимаю, что нужно записать что-то вроде:
SQL
1
Query4->SQL->Text="select Initial, Final_point_of_route, Bus_number from tab.DB where Initial = '" + DBLookupComboBox3->Text +"' and Bus_number = '" +"' or Final_point_of_route = '" + DBLookupComboBox3->Text + "' and Bus_number = '""'";
С кавычками запуталась. Что нужно писать под Bus-number?
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
22.07.2010, 21:39
Aelin, если используете and и or в запросе, то лучше применять для изменения приоритета скобки... а на счет этого:
Цитата Сообщение от Aelin Посмотреть сообщение
Что нужно писать под Bus-number?
даже не знаю, вам уже виднее откуда в них данные брать
1
0 / 0 / 0
Регистрация: 08.04.2010
Сообщений: 26
22.07.2010, 21:44  [ТС]
Разобралась) Надо просто в SELECT перечислить все поля. А те, что изменять не требуется, в WHERE ничего не записывать.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
22.07.2010, 21:50
Aelin, в select указываются поля, по которым вернутся данные, а в where - условие, если вам нужны все поля из таблиц(ы), то можно указать "*"
1
0 / 0 / 0
Регистрация: 08.04.2010
Сообщений: 26
22.07.2010, 22:29  [ТС]
Lord_Voodoo, буду знать.
А есть какой-нибудь быстрый способ произвести сортировку по Query4?
Например, отсортировать поле номер маршрута по возрастанию.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
24.07.2010, 10:15
Aelin,
order by номер маршрута [asc (по возрастанию)/ desc(по уменьшению)]... asc стоит по умолчанию, поэтому писать необязательно
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.07.2010, 10:15
Помогаю со студенческими работами здесь

Выборка значений по двум полям одновременно
Имеется таблица, из которой необходимо выбрать только те строки, значения в одном из двух полей которых встречаются в некотором заданном...

Выборка по двум полям с минимальным значением третьего
Добрый день. Простой вопрос: как сделать выборку, что в сабже? Есть поля: Производитель, Артикул, Цена. Нужно, чтобы аксесс...

Выборка из 3-х таблиц, с нахождением максимальных значений по двум полям и группировкой
Есть 3 таблицы, из них нужно осуществить выборку. Самое главное условие найти максимальное REPORTDATE для каждого PAYERID, а после(или...

Поиск по двум полям
Прошу совета! При попытке организовать поиск в форме по двум полям: Private Sub Поле209_Change() Poisk = "" &...

Сортировка по двум полям
Есть таблица с полями name,date,score Нужно вывести отсортированные 15 последних записей по date, отобразив их по убыванию по score ...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru