|
47 / 27 / 8
Регистрация: 11.05.2010
Сообщений: 169
|
||||||
Изменение запроса в зависимости от выбранных строк в нескольких DbGrid (в SQL получить значения из нескольких DataSet)26.03.2018, 09:29. Показов 4107. Ответов 30
Метки нет (Все метки)
Здравствуйте.
Есть таблицы и компоненты: Tbl_authors – Таблица авторов. С ней связаны компоненты: - ADOTable_authors, - DataSource_authors, - DBGrid_authors. Tbl_books – Таблица книг. С ней связаны компоненты: - ADOTable_books, - DataSource_books, - DBGrid_books. Tbl_books-authors – Таблица книг по авторам. С ней связаны компоненты: - ADOQuery_booksauthors - DataSource_booksauthors, - DBGrid_booksauthors. Требуется отобразить в DBGrid_booksauthors только те записи, которые соответствуют выбранным строкам в DBGrid_authors и DBGrid_books. Иными словами, требуется отобразить написанные конкретным автором книги выбранного наименования. И отображать результат в DBGrid_booksauthors при выборе строк в DBGrid_authors и DBGrid_books (при перемещении по этим гридам). Для этого, как я понимаю, надо в SQL-запросе обработать параметры из нескольких датасетов. Например, так (параметр :Id_Author соответствует полю Id_Author в таблице Tbl_authors, параметр :Id_Book соответствует полю Id_Book в таблице Tbl_books):
Но вот как получить параметры из нескольких датасетов - не понимаю. Подскажите, куда копать? Заранее спасибо за ответ(ы).
0
|
||||||
| 26.03.2018, 09:29 | |
|
Ответы с готовыми решениями:
30
DataSet и изменение запроса в зависимости от выбранной строки DbGrid Результат Sql запроса состоит из нескольких строк отличающихся одним полем Перенос нескольких строк DbGrid |
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
||||||
| 28.03.2018, 11:26 | ||||||
|
Запросы в Аксесс чувствительны к скобкам. Такой слегка модифицированный запрос ошибок не дает:
1
|
||||||
|
47 / 27 / 8
Регистрация: 11.05.2010
Сообщений: 169
|
|||
| 28.03.2018, 14:13 [ТС] | |||
|
Цветом выделены какие книги с каким автором связаны. Авторы и их книги: Сидерский Андрей написал книги: - "Йога восьми кругов", - "Йога как технология", - "Омнио-треннинг", - "Третье открытие силы". Бойко Виктор написал книги: - "Йога. Искусство коммуникации", - "Йога в вопросах и ответах". Лаппа Андрей написал книги: - "Динамические практики в классической йоге", - "Йога: Традиция Единения". Как я понимаю, в одной ячейке хранится по одному значению. Эта структура получилось в результате приведения к третьей нормальной форме - теорию брал тут: Часть 3.8: Третья нормальная форма (3NF) На мой взгляд, полностью сделано как в приведенной теории по третьей нормальной форме. В использованном примере в теории по 3NF тоже в таблицах Books(3nt) / Books(2nt) есть поля (см. во вложении рис "3nfer.png" и "2nfer.png"): - Author - Publish которые ссылаются на соответствующие ключевые поля - idAuthor в таблицах Author(3nt) / Author(2nt) - idPublish в таблицах Publish(3nt) / Publish(2nt) Или же мне надо в свой таблице Tbl_books-authors поле "Id_Book" назвать, например, "Book", а поле "Id_Author" назвать, например, "Author"? И таблица тогда будет иметь структуру: Tbl_books-authors – Таблица книг по авторам - Id (первичный ключ). Тип Integer. - Book. Тип Integer. - Author. Тип Integer. В этом была ошибка? Или я опять что-то не понимаю?
0
|
|||
|
47 / 27 / 8
Регистрация: 11.05.2010
Сообщений: 169
|
|||
| 28.03.2018, 14:56 [ТС] | |||
|
qwertehok, спасибо.
Какой бы SQL сервер могли бы посоветовать - проект не очень нагруженный, пользователей не много.Понятно, что вопрос не однозначный и при некоторой настойчивости эту тему я криво или прямо расковыряю... Но вот по не знанию, например, как с именами полей Book вместо Id_Book (что отметил qwertehok) и использовании явного объединения на основе предложения JOIN (что отметил Скандербег) - могу исполнять зажигательный танец на граблях, прежде чем пойму, что и как надо делать...
0
|
|||
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
|
| 28.03.2018, 15:09 | |
|
Присоединяюсь - MS SQL Server Express, Бесплатный сервер.
Можно рассмотреть и вариант так же с бесплатным Firebird. Который, к тому же, устанавливается слегка проще. И тот и другой для разработки БД требуют инструментальной программы (для создания объектов БД: таблиц, хранимых процедур и пр.). Для MS SQL есть "Среда SQL Server Management Studio". Для Firebird, чаще, используют IBExpert.
1
|
|
| 28.03.2018, 15:17 | |
|
0
|
|
| 28.03.2018, 15:26 | |
|
0
|
|
|
47 / 27 / 8
Регистрация: 11.05.2010
Сообщений: 169
|
||||||||||||||||||
| 29.03.2018, 18:22 [ТС] | ||||||||||||||||||
|
Спасибо всем, кто помог разобраться в задаваемых вопросах.
Добавлено через 7 часов 17 минут Я опять с вопросами ![]() Отлавливаю событие OnCellClick и AfterScroll. Событие OnCellClick имеется у объекта TDBGrid, событие AfterScroll у объекта TADOTable. На форме объект DBGrid_AuthorsList через DataSource связан с таблицей ADOTable_Tbl_Authors. Использую такой код:
Если в событии AfterScroll есть какой-то код, то не срабатывает событие OnCellClick. То есть, если мышой ткнуть в ячейку DBGrid, то должно появиться сообщение 'CellClick' из процедуры:
Причем, если "закоментировать" оператор ShowMessage('AfterScroll'), то сообщение 'CellClick' выдаётся:
0
|
||||||||||||||||||
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
|
| 29.03.2018, 18:33 | |
|
Событие AfterScroll возникает всегда при перемещении указателя в датасете. Причем неважно каким образом: клавиатурой это делается или мышкой. Поэтому нет нужды держать обработку двух событий - достаточно одного AfterScroll.
0
|
|
| 29.03.2018, 18:33 | |
|
Поиск нескольких строк в DBGrid Изменение числа в ячейке, в зависимости от нескольких аргументов Экспорт из DBGrid нескольких строк в Excel Создание запроса Sql из нескольких таблиц Расчет значения в зависимости от нескольких условий Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат»
Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
|
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
|