Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1207649909
No_Dead
2008-04-08 14:18
2008.05.25
Мы стали слабее?%>


15-1205853787
Андрей_К
2008-03-18 18:23
2008.05.25
Симпотичные VCL компоненты


15-1207771555
TIF
2008-04-10 00:05
2008.05.25
Ура! 11 000 000 статей MSDN будут переведены на русский язык...


2-1209833302
Res
2008-05-03 20:48
2008.05.25
Критическая секция


2-1209552720
Fr1K
2008-04-30 14:52
2008.05.25
Заваршение записи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский