Связь DataSet и передача значений.
Добавлено: 10 дек 2005, 12:55
Здравствуйте. Не знаю, насколько верно я сформулировал тему, но вопрос вот в чем. Имеется таблица примерно с 20-ю полями и несколькими внешними ключами. В клиентском приложении поля, соответсвующие внешним ключам должны быть заменены (визуально) на "расшифровки" (соответствующие записи из справочных таблиц). Чтобы не иметь дело с МЕГА запросом, скажем на выборку, и сделать организацию немного лучше, я создаю представление, в котором содержаться И значения внешних ключей (коды) И их "расшифровка" из таблиц-справок. Делаю я это, с мыслью о том, как потом буду добавлять новую запись - меня ведь не интересут "расшифровки", меня интересуют только "коды". Вопрос 1:
Разумен ли такой подход? Есть ли лучшая альтернатива?
Затем, на форме клиентского приложения, я, в общем случае, ставлю DBEdit, если поле не является внешним ключем, и DBComboBox, если является (чтобы можно было выбрать строго определенные значения).
Естественно (для меня), что для каждого DBComboBox-а нужен свой DataSource и DataSet. К примеру, я считал некоторую запись из таблицы (представления). В соответстующих полях должна высветиться информация. Но ComboBox-ы связаны с другим DataSource. Вопрос 2:
Как выбрать из него в текущую ту, которую нужно? Простым сравнением?
К примеру я решил отредактировать запись и изменил текущую ComboBox-а. Вопрос 3:
Как мне теперь получить код его текущего значения из таблицы справки для создания SQL-запроса на вставку в представление (фактически - в таблицу)? Генерировать в программе SQL запрос?
Не подумайте чего. Я просто не хочу наступать на грабли на которые многие из вас по своему опыту уже наступили. Меня интересует принцип. Конкретная реализация не обязательна. Просто, кто как делает.(?)
Разумен ли такой подход? Есть ли лучшая альтернатива?
Затем, на форме клиентского приложения, я, в общем случае, ставлю DBEdit, если поле не является внешним ключем, и DBComboBox, если является (чтобы можно было выбрать строго определенные значения).
Естественно (для меня), что для каждого DBComboBox-а нужен свой DataSource и DataSet. К примеру, я считал некоторую запись из таблицы (представления). В соответстующих полях должна высветиться информация. Но ComboBox-ы связаны с другим DataSource. Вопрос 2:
Как выбрать из него в текущую ту, которую нужно? Простым сравнением?
К примеру я решил отредактировать запись и изменил текущую ComboBox-а. Вопрос 3:
Как мне теперь получить код его текущего значения из таблицы справки для создания SQL-запроса на вставку в представление (фактически - в таблицу)? Генерировать в программе SQL запрос?
Не подумайте чего. Я просто не хочу наступать на грабли на которые многие из вас по своему опыту уже наступили. Меня интересует принцип. Конкретная реализация не обязательна. Просто, кто как делает.(?)