Форум: "Начинающим";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
ВнизКак добавить элемент в DBLookupComboBox? Найти похожие ветки
← →
deras © (2008-04-24 13:37) [0]Заполняю DBLookupComboBox записями из таблицы. Как добавить первым в списке DBLookupComboBox элемент типа "Нет значения" с KeyValue=-1, а далее в списке все записи таблицы
Это надо для того, чтоб пользователь мог и не выбрать ничего из списка, а я мог бы сохранить в другую таблицу значение -1, как результат того, что ничего не было выбрано
← →
Sergey13 © (2008-04-24 13:40) [1]> [0] deras © (24.04.08 13:37)
Добавь в датасет, на который смотрит комбик, такую запись.
← →
deras © (2008-04-24 13:44) [2]то что, при каждом заполнении DBLookupComboBox добавлять запись?
← →
Sergey13 © (2008-04-24 14:01) [3]> [2] deras © (24.04.08 13:44)
> при каждом заполнении
Ты его руками заполняешь что ли?
← →
Anatoly Podgoretsky © (2008-04-24 14:11) [4]> deras (24.04.2008 13:37:00) [0]
В DBLookupComboBox нет записей.
← →
deras © (2008-04-24 14:18) [5]
> Ты его руками заполняешь что ли?
не руками естств... Я так понимаю, должна быть "дежурная" запись в таблице со значением "Нет значения" и id=-1 ?
> В DBLookupComboBox нет записей
Я имел ввиду записи таблицы
← →
Сергей М. © (2008-04-24 14:20) [6]
> должна быть "дежурная" запись в таблице
Не в таблице а в наборе данных. Это не одно и то же.
← →
Ega23 © (2008-04-24 14:31) [7]
Select -1 as id, "Нет значения" as Value
union all
Select id, Value from Table1
И не надо ничего выдумывать, "всё уже украдено до нас" (с)
← →
Sergey13 © (2008-04-24 14:34) [8]> [5] deras © (24.04.08 14:18)
> Я так понимаю, должна быть "дежурная" запись в таблице со
> значением "Нет значения" и id=-1 ?
Можно и так, если не мешает. Можно в запросе добавить типа
select * from table
union all
select -1,"Нет значения" from чего-то-такое
можно просто вставить запись в ДАТАСЕТ, не фиксируя изменений в БД.
← →
Sergey13 © (2008-04-24 14:40) [9]> [0] deras © (24.04.08 13:37)
> а я мог бы сохранить в другую таблицу значение
> -1, как результат того, что ничего не было выбрано
Вообще-то классика жанра вроде рекомендует туда ничего не записывать, точнее записывать значение NULL.
← →
Ega23 © (2008-04-24 14:42) [10]
> Вообще-то классика жанра вроде рекомендует туда ничего не
> записывать, точнее записывать значение NULL.
>
Стандартный DBLookupCombo на null вроде как не позиционируется...
← →
deras © (2008-04-24 14:47) [11]
> Ega23 © (24.04.08 14:31) [7]
> Sergey13 © (24.04.08 14:34) [8]
Так супер! все подходит. Спасибо большое!
← →
Sergey13 © (2008-04-24 14:47) [12]> [10] Ega23 © (24.04.08 14:42)
Я имею в виду, что записывать в главную таблицу ничего не надо, при НЕ выбранном значении справочника.
← →
Ega23 © (2008-04-24 14:53) [13]
> Я имею в виду, что записывать в главную таблицу ничего не
> надо, при НЕ выбранном значении справочника.
А... Я тебя в [9] неточно понял.
← →
deras © (2008-04-24 15:07) [14]
> Ega23 © (24.04.08 14:31) [7]
позвольте сделать маленькую поправочку...
мне кажеться надо использовать не union all, а просто union
← →
Ega23 © (2008-04-24 15:09) [15]
ALL
Incorporates all rows into the results, including duplicates. If not specified, duplicate rows are removed.
В твоём случае - без разницы. Просто All - это уже привычка, на автомате вылетает...
← →
Sergey13 © (2008-04-24 15:23) [16]> [14] deras © (24.04.08 15:07)
Интересно почему?
← →
deras © (2008-04-24 15:42) [17]
> Sergey13 © (24.04.08 15:23) [16]
Честно говоря, сам не знаю, но когда union all, то почему-то значений "Нет значения" ровно столько, сколько записей в таблице (наборе данныз)
Понимаю.... резонное замечание с вашей стороны, господа эксперты - "учи матчать" :-)
← →
Ega23 © (2008-04-24 15:50) [18]
> Честно говоря, сам не знаю, но когда union all, то почему-
> то значений "Нет значения" ровно столько, сколько записей
> в таблице (наборе данныз)
Запрос покажи
← →
Ega23 © (2008-04-24 15:51) [19]И СУБД назови. Потому как у меня в TSQL - все прекрасно.
← →
deras © (2008-04-24 15:53) [20]Select -1 as id, "Нет значения" as name FROM spr_nakladnaya
union all
SELECT id, name FROM spr_nakladnaya
DB MSAccess
← →
Ega23 © (2008-04-24 15:55) [21]
Select -1 as id, "Нет значения" as name
union all
SELECT id, name FROM spr_nakladnaya
А так? :)
← →
Sergey13 © (2008-04-24 15:58) [22]> [17] deras © (24.04.08 15:42)
> господа эксперты - "учи матчать" :-)
С первой частью не согласен - я далеко не эксперт. Вторую часть поддерживаю полностью. 8-)
> [17] deras © (24.04.08 15:42)
> Честно говоря, сам не знаю
Тогда стоит не поправлять более знающего человека, а переспросить для уточнения. (впрочем это уже лирика)
> но когда union all, то почему-то значений "Нет значения"
> ровно столько, сколько записей в таблице (наборе данныз)
1. когда где "union all"?
2. а сколько ты ожидал и колько там (и вообще где?) есть?
3. таблица<>набору данных
Union, если почитать документацию, возвращает сумму записей двух таблиц, исключая повторяющиеся записи. Union ALL ничего не исключает, кроме того он не делает и неявную сортировку/группировку, необходимую для исключения дубликатов. Поэтому в твоем случае необходим как раз таки union all.
← →
deras © (2008-04-24 15:58) [23]так пробовал. Вы так указали первый раз. Но выдает ошибку
"В качестве входных данных запрос должен иметь хотя бы одну таблицу или запрос"
← →
Ega23 © (2008-04-24 16:02) [24]блин... вот в Access не знаю... На TSQL и PgSQL просто "из ниоткуда" Select можно сделать...
В FB - from RDB$... (чего-то там, уже не помню)
← →
deras © (2008-04-24 16:12) [25]все равно спасибо! главное ведь - идея сама
← →
Sergey13 © (2008-04-24 16:22) [26]> [25] deras © (24.04.08 16:12)
Если ты все таки решил писать в главную таблицу значение -1, то тебе придется добавить дополнительную запись в справочник. Иначе не получится записать, если конечно связь между таблицами в виде внешнего ключа существует (а она должна быть!!!). Тогда запрос с union отпадет сам собой.
← →
deras © (2008-04-24 16:32) [27]
> Sergey13 © (24.04.08 16:22) [26]
а почему я не могу проверят в главной таблице - если -1, то значение не было выбрано? Разве так нельзя?
← →
deras © (2008-04-24 16:37) [28]
> Sergey13 © (24.04.08 16:22) [26]
ага.. наверное, Вы имелти виду, что все равно в справочнике должно быть соотношение -1 -> "Нет значения"
Например, хотя бы для отображения в том же гриде... Так я понял?
← →
Sergey13 © (2008-04-24 16:41) [29]> [28] deras © (24.04.08 16:37)
> Например, хотя бы для отображения в том же гриде
Грид тут лесом идет. У главной таблицы должен быть внешний ключ на справочник. Наличие этой связи предполагает, что в поле таблице содержатся ссылки только на то, что есть в справочнике. Это называется ссылочной целостностью.
← →
Sergey13 © (2008-04-24 16:43) [30]> [27] deras © (24.04.08 16:32)
> если -1, то значение не было выбрано?
Если значение не выбрано - это NULL, а -1 это конкретное значение, которое ДОЛЖНО существовать в справочнике.
← →
deras © (2008-04-24 16:50) [31]
> Sergey13 © (24.04.08 16:41) [29]
это я понимаю. И так правильно было бы делать. Но в данном случае мне этого не надо да и не надо будет в будущем
← →
Ega23 © (2008-04-24 16:51) [32]тогда null
← →
Sergey13 © (2008-04-24 16:53) [33]> [31] deras © (24.04.08 16:50)
Чего тебе надобно, старче. (с) Пушкин
8-)
Чего "мне этого не надо да и не надо будет в будущем"? Ссылочную целостность? Ню-ню.
← →
deras © (2008-04-24 16:53) [34]
> Sergey13 © (24.04.08 16:43) [30]
тогда как его (значение NULL) отобразить в DBLookupComboBox1, ведь, как сказал
> Ega23 © (24.04.08 14:42) [10]
это правда?
← →
Sergey13 © (2008-04-24 16:57) [35]> [34] deras © (24.04.08 16:53)
Никак не отобразится/не спозиционируется. В гриде будет пустое поле.
← →
Ega23 © (2008-04-24 17:01) [36]
> Никак не отобразится/не спозиционируется. В гриде будет
> пустое поле.
Я свой DBLookupCombo написал, у него позиционируется... :о)
← →
deras © (2008-04-24 17:12) [37]
> Ega23 © (24.04.08 17:01) [36]
:-) хорошо Вам
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.008 c