![]() |
|
|
![]()
|
|
| ALeXandrK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 342 Регистрация: 31.1.2007 Где: Санкт-Петербург Репутация: 2 Всего: 6 |
Помогите найти оптимальное решение:
Нужно добавлять сразу список значений в таблицу. Поясняю: Есть таблица "АудиторииПредмета" и таблица "Аудитории". Нужно добавлять из списка аудитории те, которые выберет пользователь. Само собой, что добавлять по одной аудитории посредством нажатия кнопки добавить и выбором из всего списка аудиторий нужную неподходит. А как можно организовать наилучшим образом список наподобие CheckListBox, чтобы выбранные в этом списке добавились, а не выбранные, если есть в базе, удалились? ... нужно создавать доп. поле в таблице "выбрано" или ... вообщем, какие варианты, как вы поступали в подобных случаях??? Это сообщение отредактировал(а) ALeXandrK - 9.9.2007, 02:31 -------------------- Богат не/ни тот, у кого много, а тот, кому хватает |
|||
|
||||
| Anark1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 622 Регистрация: 15.12.2006 Где: RF -> Moscow Репутация: 1 Всего: 11 |
Где Proc_Del и Proc_Ins - процедуры формирования SQL запроса. Соответственно для удаления записей и вставке. |
|||
|
||||
| ALeXandrK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 342 Регистрация: 31.1.2007 Где: Санкт-Петербург Репутация: 2 Всего: 6 |
У предложенного алгоритма есть недостаток: если поле уже существует в базе и оно уникально, то при добавлении его очередном
добавлении будет ошибка. Может проще сначала удалить все поля для предмета, а потом просто добавить выделенные, тогда ошибок не будет. Да и потом получается, что удобнее создавать временную колонку с галочками, а потом запросом добавлять выделенные. Это сообщение отредактировал(а) ALeXandrK - 9.9.2007, 12:37 -------------------- Богат не/ни тот, у кого много, а тот, кому хватает |
|||
|
||||
| ALeXandrK |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 342 Регистрация: 31.1.2007 Где: Санкт-Петербург Репутация: 2 Всего: 6 |
Вообщем самым простым выходом пощетал следующий:
1. Добавел дополнительное поле в таблицу "Аудитории" - "Checked" типа boolean; 2. Создал три запроса:
3. Соответственно, запускаем это все в нужном порядке и все прекрасно работает Я эту задачу уже решал. Думал, может уже есть готовое универсальное и более оптимальное решение, чем мое. Ведь у такого подхода есть недостаток: нужно для каждого случая создавать свои запросы, со своими полями, хотя конечно можно это все превратить в переменные... Это сообщение отредактировал(а) ALeXandrK - 9.9.2007, 15:52 -------------------- Богат не/ни тот, у кого много, а тот, кому хватает |
||||||
|
|||||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |