Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.25;
Скачать: CL | DM;

Вниз

Как добавить элемент в 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;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.017 c
15-1208061864
antonn
2008-04-13 08:44
2008.05.25
Звук телефонного звонка


2-1209892032
filin2323
2008-05-04 13:07
2008.05.25
скрытие формы


6-1187289971
WebSqlNeederr
2007-08-16 22:46
2008.05.25
Преобразовать айпи в длинный тип


15-1207911636
Виталий
2008-04-11 15:00
2008.05.25
DracDrop и TlistView


2-1209824858
Res
2008-05-03 18:27
2008.05.25
wm_quit