|
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 37
|
||||||
Запрос AdoQuery, соединение с таблицами в разных формах. Delphi. DBGrid03.03.2019, 22:24. Показов 8519. Ответов 37
Здравствуйте, помогите пожалуйста! В общем нужно чтоб при выборе определенного (курса)из грида, а после нажатии "выбрать", открывалась следующая форма с предметами этого курса.
Это Sql, ADOQuery1 -Form4 ; Select * From курс where Код =:CodSemestra Это Sql, ADOQuery1 -Form6 ; Select * From Students order by фио Это Sql, ADOQuery2 -Form6 ; Select * From предметы where КодСеместра = :CodSemestra order by ФИО вот код кнопки "выбрать"
0
|
||||||
| 03.03.2019, 22:24 | |
|
Ответы с готовыми решениями:
37
Связь между таблицами на разных формах Как сделать подстановку между таблицами sql в Delphi+AdoQuery? Как связать DbChart с таблицей DbGrid, если они на разных формах? |
|
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
|
|
| 11.03.2019, 11:28 | |
|
А что принципиально поменялось? Как я в прошлом сообщении сказал, у вас все действует в рамках логики. Более того, если вы выберете курс с кодом 6, то он вообще покажет пустую таблицу. Потому что КодСеместра у вас настолько же уникален, как и Код. Вы же, надеюсь, понимаете, что выполняет SELECT и зачем задается условие в WHERE?
0
|
|
|
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 37
|
||
| 11.03.2019, 11:58 [ТС] | ||
|
Nanotentacle, я не понимаю в чем ошибка
Добавлено через 56 секунд
0
|
||
|
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
|
|||||||
| 11.03.2019, 12:58 | |||||||
|
1) выбрать произвольное количество полей из таблицы 2) выбрать произвольное количество полей из нескольких таблиц, объединенных по некоторому условию 3) выбрать произвольное количество полей из таблицы по некоторому условию. По факту, это выглядит вот так:
У вас в таблице записи с уникальными значениями в столбце КодСеместра. Если вы делаете простую выборку, где в условии КодСеметра стоит равенство, то он вернет либо одно значение, либо ни одного. Примерно как вам сказать "на столе лежит груша, яблоко, слива, апельсин, мандарин. Дай мне тот фрукт, который апельсин". Вы же не можете на это дать яблоко? Фрукт, который вам надо передать, вполне однозначно определен. Потому и у вас выбирается только одна строка: вы задаете условие, которое ограничивает выборку из БД.
0
|
|||||||
|
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 37
|
||||||
| 11.03.2019, 13:14 [ТС] | ||||||
|
Nanotentacle, не понимааюю
0
|
||||||
|
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
|
||||||
| 11.03.2019, 14:47 | ||||||
По факту, в условие вам надо поставить название столбца, знак сравнения (больше, меньше, равно) и значение, с которым все это будет сравниваться. Надо выбрать значения больше трех? Ставьте "КодСеместра > 3", и он выберет все записи, в которых КодСеместра больше трех. Надо, чтобы был меньше пяти? Ставьте "КодСеместра < 5". Надо, чтобы не КодСеместра был, а, скажем, название предмета? Ну так внесите его в условие. Вы сначала сформулируйте то, что вы хотите получить, на понятном для себя языке, а потом условие для выборки записей станет очевидным.
0
|
||||||
|
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 37
|
|
| 11.03.2019, 15:07 [ТС] | |
|
Nanotentacle, ну я более менее объяснила же, при выборе курса все что записано в таблице "предметы" должно отображаться
0
|
|
|
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
|
||
| 11.03.2019, 15:32 | ||
|
Как вы сами понимаете, при этом у вас пропадет параметр, и начнет выбивать ошибку. Поэтому и присвоение значения параметру тоже надо убирать.
0
|
||
|
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 37
|
|
| 11.03.2019, 16:31 [ТС] | |
|
Nanotentacle, должны отображаться только строки с кодом курса, который был выбран.
0
|
|
|
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
|
||||
| 12.03.2019, 04:13 | ||||
|
0
|
||||
|
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 37
|
|
| 13.03.2019, 00:22 [ТС] | |
|
Nanotentacle, Есть таблица Курс (код, курс) и предметы(код, КодСтудента, кодДисциплины, кодСеместра, оценка, пропуски). Код из таблицы "Курс" привязан к КодСеместра из таблицы "предметы". Нужно, чтоб при выборе курса, на первой форме из DBGrid, и нажатия кнопки , открывалась вторая форма с другим DBGrid, где отображалась таблица "предметы" , НО со строками этого выбранного курса их может быть много . Я уже не знаю как вам объеснить.
По вашему, я так понимаю, так сделать в программе нельзя?!
0
|
|
|
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
|
|||
| 13.03.2019, 03:55 | |||
|
Понимаете, тут ключевое слово "может быть". А может и не быть. Может быть будет одна строка. Может быть не будет совсем (задайте КодСеметра=10 и проверьте). Зайдите в свою базу. Откройте там таблицу "Предметы". В столбце "КодСеместра" примените фильтр. Выберите любое одно число. Сколько строк у вас там получится? После этого эксперимента попробуйте объяснить как вы хотите сделать так, чтобы при задании КодаСеместра у вас выдавалось несколько записей, если сейчас в таблице каждому семестру соответствует только одна запись? Если вам надо несколько строк - добавьте их в базу и не трогайте программу. Если я правильно понимаю, то вы путаете хранилище (суть, вашу БД) и интерфейсную часть этого хранилища, которое только совершает действия над хранилищем (выборку данных, их изменение или вставку), но не занимается тем, чтобы эти данные хранить. Программа только показывает то, что хранится в базе.
0
|
|||
|
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 37
|
|
| 13.03.2019, 16:24 [ТС] | |
|
Nanotentacle, а если сделать все на одной форме и выбор курса делать через комбобокс?
0
|
|
|
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
|
|||||||||||||||||
| 14.03.2019, 03:59 | |||||||||||||||||
Сообщение было отмечено Lizalili как решение
РешениеЯ посмотрел соседнюю тему и да, ошибка есть.
0
|
|||||||||||||||||
|
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 37
|
|
| 14.03.2019, 12:04 [ТС] | |
|
Nanotentacle, Да, теперь этот код работает, спасибо.
0
|
|
|
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 37
|
||||||
| 15.03.2019, 13:03 [ТС] | ||||||
|
Nanotentacle,
и снова здравствуйте, как мне соединить два запроса ? в тот Adoquery где я подключаюсь к коду семестра
0
|
||||||
|
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
|
||
| 15.03.2019, 18:06 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 37
|
||||||
| 15.03.2019, 20:59 [ТС] | ||||||
|
Nanotentacle, Сделала по другому. Есть другая проблема, при добавлении записи в таблицу, не присваивает код выбранного семестра
вот код
0
|
||||||
|
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
|
|||||||
| 16.03.2019, 05:03 | |||||||
Учитесь правильно формулировать задачу. Например, "Для изменения данных в таблице было принято решение использовать дополнительную форму с такими-то полями для заполнения. В результате нажатия кнопки "Ок" должна производиться запись в базу. В результате записи в базу должны быть заполнены такие-то поля таблицы. Для записи в базу используется отдельный ADOQuery, который содержит вот такой-то запрос и такие-то параметры". Вы же когда пишете код, вы чем-то руководствуетесь, не просто же делаете комбинацию из объектов и их свойств? Вот и опишите, чем вы руководствуетесь и как, по вашему мнению, это работает. Можно, конечно, прикладывать код вашей программы, тогда многое станет понятнее. Но это не дает 100% гарантии, что вам правильно поймут. В жизни навык формулировать свои действия и концепции вам очень пригодятся.
0
|
|||||||
| 16.03.2019, 05:03 | |
|
Запрос ADOQuery со сменой параметров и повторный вывод в DBGrid Delphi + ADOQuery+ Запрос SQL Запрос на выборку из двух таблиц в AdoQuery в Delphi
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|