Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Базы данных и репортинг > сырье для Запроса |
Автор: Кит 11.12.2005, 15:58 | ||||
Имеется база данных в Access и доступ ней через ADO Таблица Болезней (Bolezni) связана с Таблицей симптомов (Simptomi) как "many-to-many" через промежуточную таблицу Codes_1 Выглядит это так "Bolezni" Kod_bolezni Nazvanie_bolezni 1 Аритмия 2 Атеросклероз 3 Гипотония и т.д. Simptomi Kod_simptoma Nazvanie_simptoma 1 Нарушение ритма сердца 2 Боли в животе 3 Боли в пояснице 4 Температура и т.д. Codes_1 Kod_bolezni Kod_simptoma 1 1 2 1 2 4 1 3 и т.д. Bolezni связана с Codes_1 как один ко многимпо полю Kod_bolezni Simptomi связана с Codes_1 как один ко многим по полю Kod_simptoma Я хочу бы чтобы по выбору нескольких симптомов из Simptomi в ListView1 происходил бы выбор соответствующих болезней Сам ListView1 я заполняю при активации формы так
Где поле Kod_simptoma невидимо. Оно будет необходимо для другого запроса. Теперь я сделал SQL-запрос для вывода в ListView2 всех болезней соответствующих выбранным симптомам и повесил на кнопку
Он работает, но заполняет ListView2 всеми болезнями из базы НАКОНЕЦ, САМ ВОПРОС: КАК МНЕ И КУДА ПЕРЕДАТЬ В ПРЕД. ЗАПРОС ИНДЕКСЫ ВЫБРАННЫХ СТРОК ListView1(симптомы)(ВМЕСТЕ С Kod_simptoma) ДЛЯ ТОГО ЧТОБЫ ОН ОТОБРАЗИЛ ТОЛЬКО СООТВЕТСТВУЮЩИЕ БОЛЕЗНИ. СПАСИБО, ЧТО ДОЧИТАЛИ ДО КОНЦА! :wink: |
Автор: Vit 19.12.2005, 19:38 |
Варианты: 1. Генерить запрос динамически с тем количеством параметров которое необходимо и параметры заполнять из листа 2. Сделать временную таблицу, заполнять её запрашиваемыми параметрами и добавлять её в Join Первый способ предпочтительнее если лист не очень большой, второй при больших массивах данных |