Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как проверить есть ли string среди combobox.items [D7]


Страницы:   1 2

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?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо