Як додати елемент в DBLookupComboBox?
Заповнюю DBLookupComboBox записами з таблиці. Як додати першим в списку DBLookupComboBox елемент типу "Ні значення" з KeyValue = -1, а далі в списку все записи таблиці
Це треба для того, щоб користувач міг і не вибрати нічого зі списку, а я міг би зберегти в іншу таблицю значення -1, як результат того, що нічого не було вибрано
Додай в датасета, на який дивиться комбік, такий запис.
то що, при кожному заповненні DBLookupComboBox додавати запис?
Ти його руками заповнюєш чи що?
У DBLookupComboBox немає записів.
> Ти його руками заповнюєш чи що?
не руками естств. Я так розумію, повинна бути "чергова" запис в таблиці зі значенням "Ні значення" і id = -1?
> В DBLookupComboBox немає записів
Я мав на увазі записи таблиці
> Повинна бути "чергова" запис в таблиці
Не в таблиці а в наборі даних. Це не одне і те ж.
Select -1 as id, "Ні значення" as Value
union all
Select id, Value from Table1
І не треба нічого вигадувати, "все вже вкрадено до нас" (с)
Можна і так, якщо не заважає. Можна в запиті додати типу
select * from table
union all
select -1, "Ні значення" from чогось-таке
можна просто вставити запис в датасета, що не фіксуючи змін в БД.
Взагалі-то класика жанру на кшталт рекомендує туди нічого не записувати, точніше записувати значення NULL.
> Взагалі-то класика жанру на кшталт рекомендує туди нічого не
> Записувати, точніше записувати значення NULL.
>
Стандартний DBLookupCombo на null ніби як не позиціонується.
Так супер! все підходить. Велике спасибі!
Я маю на увазі, що записувати в головну таблицю нічого не треба, при НЕ вибраною величиною довідника.
> Я маю на увазі, що записувати в головну таблицю нічого не
> Треба, при НЕ вибраною величиною довідника.
А. Я тебе в [9] неточно зрозумів.
дозвольте зробити маленьку поправочку.
мені кажеться треба використовувати не union all, а просто union
Incorporates all rows into the results, including duplicates. If not specified, duplicate rows are removed.
У твоєму випадку - без різниці. Просто All - це вже звичка, на автоматі вилітає.
Розумію. резонне зауваження з вашого боку, панове експерти - "вчи матчать" :-)
> Чесно кажучи, сам не знаю, але коли union all, то чомусь
> То значень "Немає значення" рівно стільки, скільки записів
> В таблиці (наборі данниз)
І СУБД назви. Тому як у мене в TSQL - все прекрасно.
Select -1 as id, "Ні значення" as name FROM spr_nakladnaya
union all
SELECT id, name FROM spr_nakladnaya
Select -1 as id, "Ні значення" as name
union all
SELECT id, name FROM spr_nakladnaya
З першою частиною не згоден - я далеко не експерт. Другу частину підтримую повністю. 8-)
Тоді коштує не поправляти більш знаючої людини, а перепитати для уточнення. (Втім це вже лірика)
> Але коли union all, то чомусь значень "Немає значення"
> Рівно стільки, скільки записів в таблиці (наборі данниз)
1. коли де "union all"?
2. а скільки ти очікував і колько там (і взагалі де?) Є?
3. таблиця<>набору даних
Union, якщо почитати документацію, повертає суму записів двох таблиць, виключаючи повторювані записи. Union ALL нічого не виключає, крім того він не робить і неявну сортування / угруповання, необхідну для виключення дублікатів. Тому в твоєму випадку необхідний якраз таки union all.
так пробував. Ви так вказали перший раз. Але видає помилку
"В якості вхідних даних запит повинен мати хоча б одну таблицю або запит"
млинець. ось в Access не знаю. На TSQL і PgSQL просто "з нізвідки" Select можна зробити.
У FB - from RDB $. (Чогось там, вже не пам'ятаю)
все одно дякую! головне ж - ідея сама
Якщо ти все таки вирішив писати в головну таблицю значення -1, то тобі доведеться додати додаткову запис в довідник. Інакше не вийде записати, якщо звичайно зв'язок між таблицями у вигляді зовнішнього ключа існує (а вона повинна бути.). Тоді запит з union відпаде сам собою.
ага. напевно, Ви імелті увазі, що все одно в довіднику має бути співвідношення -1 -> "Немає значення"
Наприклад, хоча б # XA0; для відображення в тому ж гріді. Так я зрозумів?
Грід тут лісом йде. У головній таблиці повинен бути зовнішній ключ на довідник. Наявність зв'язку з цим передбачає, що в поле таблиці містяться посилання тільки на те, що є в довіднику. Це називається посилальної цілісністю.
Якщо значення не вибрано - це NULL. а -1 це конкретне значення, яке ПОВИННО існувати в довіднику.
Чого тобі треба, старче. (С) Пушкін
8-)
Чого "мені цього не треба та й не треба буде в майбутньому"? Кількість посилань цілісність? Ню-ню.
Ніяк не відобразиться / НЕ спозіціоніруется. У гріді буде пусте поле.
> Ніяк не відобразиться / НЕ спозіціоніруется. У гріді буде
> Порожнє поле.
Я свій DBLookupCombo написав, у нього позиціонується. # XA0;: о)