![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как проверить есть ли string среди combobox.items [D7]
helluvaname © (2010-01-25 15:38:00)задача - заполнить combobox уникальными значениями из двух столбцов таблицы.
Сначала заполняю уникальными значениями из одного столбца с помощью SELECT DISTINCT.
Далее требуется заполнить уникальными значениями из другого столбца, и при заполнении проверять, не содержаться ли они уже в combobox.
Вопрос - как эту проверку осуществлять?
12 (2010-01-26 18:12:00) [1]
> select distinct S.A from
> (select Col1 as A from Table1
> union
> select Col2 as A from Table1) S
MsGuns (2010-01-26 16:53:00) [2]select distinct S.A from
(select distinct Col1 as A from Table1
union
select distinct Col2 as A from Table1) S
Ega23 (2010-01-26 15:29:00) [3]Всё взаимосвязано.
12 (2010-01-26 15:11:00) [4]ok :), imho
хотя не вижу чем это может быть плохо. Сервер с БД чаще переживает своих GUI клиентов
Jeer (2010-01-26 14:44:00) [5]
> Вся логика пусть будет на сервере.
Не забудь добавить: "Это мое частное мнение"
12 (2010-01-26 12:10:00) [6]
> Плохиш © (26.01.10 12:02) [21]
+1
+
Интерфейс должен быть только интерфейсом. Вся логика пусть будет на сервере.
Что если завтра война? (перешли на другой язык / иное)
Плохиш (2010-01-26 12:02:00) [7]
> helluvaname (25.01.10 15:38)
>
> задача - заполнить combobox уникальными значениями из двух
> столбцов таблицы.
> Сначала заполняю уникальными значениями из одного столбца
> с помощью SELECT DISTINCT.
> Далее требуется заполнить уникальными значениями из другого
> столбца, и при заполнении проверять, не содержаться ли они
> уже в combobox.
> Вопрос - как эту проверку осуществлять?
Не надо никаких проверок осуществлять, SQL-сервер, как всегда партизанский, сам это сделает, кодеру просто нужно иметь начальные знания SQL.
Сергей М. (2010-01-26 11:56:00) [8]
> в чем преимущество?
В нормализации БД.
Любой мало-мальски приличной БД положено быть нормализованой.
oldman (2010-01-26 11:56:00) [9]
> helluvaname (26.01.10 10:52) [10]
У вас там что, названия складов меняются раз в час?
Ведь в [12] написано.
Будешь иметь справочник всегда под рукой.
И при вводе накладных, и при расчетах.
Заполняй свои комбобоксы один раз и пользуй.
Ega23 (2010-01-26 11:51:00) [10]
> возможно, а в чем преимущество?
Читать про нормализацию БД.
helluvaname (2010-01-26 11:43:00) [11]
> oldman © (26.01.10 11:38) [15]
Вы о чем?
helluvaname (2010-01-26 11:41:00) [12]
> Anatoly Podgoretsky © (26.01.10 11:13) [14]
>
> Для того, чтобы посчитать остаток, не надо знать "Откуда",
> да и "куда" тоже. Надо знать приход и расход
гениально, Анатолий!
> Сергей М. © (26.01.10 10:58) [12]
>
>
> Для этой цели должен быть предусмотрен справочник складов.
>
возможно, а в чем преимущество?
oldman (2010-01-26 11:38:00) [13]
> helluvaname (26.01.10 10:52) [10]
Откуда:
a +10
b +20
Куда:
a -5
c -10
Должен получиться остаток 15
А получится что???
a +10
b +20
c -10
Теряшь цифры...
Anatoly Podgoretsky (2010-01-26 11:13:00) [14]> helluvaname (26.01.2010 10:52:10) [10]
Для того, чтобы посчитать остаток, не надо знать "Откуда", да и "куда" тоже. Надо знать приход и расход.
Jeer (2010-01-26 11:13:00) [15]
> helluvaname (26.01.10 10:52) [10]
>
> при учете накладных нужно заносить в таблицу склад "откуда"
> и склад "куда".
Ну вот тебе и ошибка проектирования.
Как верно заметил тезка, тебе необходимо иметь отдельную таблицу-справочник "Склады". В ней всегда будет полный и уникальный список твоих складов.
Остатки обычно считаются не по накладным, а по состоянию склада(ов), формируемому в момент проводки накладной.
В принципе, можно и по накладным пересчитывать, но эти лишние "телодвижения" нужны больше для верификации и проверки целостности.
Сергей М. (2010-01-26 10:58:00) [16]
> helluvaname (26.01.10 10:52) [10]
Для этой цели должен быть предусмотрен справочник складов.
Сергей М. (2010-01-26 10:56:00) [17]Удалено модератором
helluvaname (2010-01-26 10:52:00) [18]при учете накладных нужно заносить в таблицу склад "откуда" и склад "куда". для этого нужно два разных столбца. чтобы посчитать остаток на каком-либо складе нужно выбрать название склада в комбобоксе и нажать кнопочку "посчитать". столбец "откуда" может не содержать все уникальные записи столбца "куда" и наоборот, поэтому нужно выбрать все уникальные записи из обоих столбцов.
Jeer (2010-01-26 10:36:00) [19]Есть грубый, но всем известный контр-вопрос: "А на фига козе баян ?"
Вот спрашивает человек: "Мужики ! Есть у меня обычный автомобиль, он катается взад и вперед, но мне надо чтобы он боком катился. Как ?"
В принципе, вопрос имеет право на существование и даже решение можно предложить и не одно, но также имеет право и ответ "А никак. Архитектура автомобиля 'неправильная' для этого действия".
При этом я понятия не имею зачем тебе это было надо, т.е. не знаю твоей задачи.
Вот теперь и объясни, зачем смешивать разные сущности ( два поля) в одну ( общий список).
А если это одна сущность, зачем-то раскиданная в два поля - налицо ошибка проектирования.
Вот если это одна сущность, но имеют место ее "оттенки", то следует все же оставить одно поле для сущности и ввести доп.поле "оттенок".
Ega23 (2010-01-26 07:41:00) [20]
> Jeer говорит что архитектура неправильная, я прошу его свои слова обосновать.
Присоединяюсь к Jeer. Скорее всего база коряво спроектирована.
> Просто интересно, как человек не знающий ничего о задаче делает такие выводы.
У этого человека весьма сурьёзный опыт, который не пропьёшь.
В принципе, я допускаю, что данная ситуация (в один комбик записи из разных таблиц пихать), хотя я сходу пример такой ситуации придумать не могу.
Но тут возникает вопрос: а нафига изобретать велосипед, если есть TDBComboBox?