|
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 37
|
||||||
Запрос AdoQuery, соединение с таблицами в разных формах. Delphi. DBGrid03.03.2019, 22:24. Показов 8347. Ответов 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
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2.
Задача: контроль уникальности строк в. . .
|
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
|
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
|
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
|
|
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
|
Своя Интернет-Компания
iceja 18.06.2026
Я программист с экономическим образованием, пишу свой проект, это SaaS для бизнесов. Мне нужен co-founder с высшим экономическим образованием, и/ или инвестор. Сейчас проект в интенсивной разработке,. . .
|
24 Мат модель здравосохранения: функциональные требования к строительству пищеблока
anaschu 18.06.2026
СРесурсами1: финансовый SD-контур, калькулятор функциональных требований пищеблока
Сегодня разделили затраты в агенте Экономика по образцу модели НАСОСЫ, добавили расчёт ROI и построили первый. . .
|
23. что сделано за последнее время.
anaschu 17.06.2026
• Эталон: Клиника НИИ питания РАМН, Москва — централизованный пищеблок, 225 коек, 180 пациентов
• Git: репозиторий med2, ветка абсентеизм. Рабочий файл: СРесурсами1_v4. alp
• Смежный проект:. . .
|