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

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

Как в запросе SELECT можно было несколько полей одного типа объед


Страницы:   1 2

ED ©   (2003-08-06 11:26:00) 

Как в запросе SELECTможно было несколько полей одного типа объединить в одно поле? (чтобы в QUERYвместо трех полей было одно)


Danilka   (2003-08-07 11:15:00) [1]

Sergey Masloff
ps. Тебе ник вернули, или ты просто такой хитрый? :))


Danilka   (2003-08-07 11:14:00) [2]

Sergey Masloff ( 06.08.03 19:50)

Sergey Masloff (06.08.03 19:50)
На счет счет сотен клиентов, у нас эта проблема решена тем, что екзешник и все дополнительные файлы: бпл-ки, может еще что, лежит в базе.
А у клиента сначала запускается загрузчик, который сверяет файлы в базе с файлами на клиенте, если есть более позние версии на сервере, то он их закачивает, после чего запускает основную программу.
В принципе, так сделано у крупных клиентов, позволяет обновлять ПО по-инету, а у себя попроще (и, возможно, удобнее): последняя скомпиленая версия лежит на CVS-ке, как правило, запускаешь батник который очень шустро сверяет файлы на CVS-ке с тем что лежит у меня на диске, закачивает последние версии измененых файлов и потом только запускает саму программу.


Sergey Masloff   (2003-08-07 09:56:00) [3]

Sergey13 © (07.08.03 09:40)
>О вкусах спорить трудно и бесполезно.
Так мы вроде и не спорим. Ты сказал что нужен компромисс между клиентом и сервером и я согласился. Добавив только что компромисс он разный бывает в каждом конкретном случае. Я пока золотой середины не нашел... Делал и (почти) все на клиенте и (почти) все на сервере. И то хорошо и то неплохо...


Sergey13   (2003-08-07 09:40:00) [4]

2Sergey Masloff ( 07.08.03 09:30)

2Sergey Masloff (07.08.03 09:30)
О вкусах спорить трудно и бесполезно.
"Ты и я, мы оба правы, правы, ох как правы" (с) Алла Пугачева.
8-)


Sergey Masloff   (2003-08-07 09:30:00) [5]

Sergey13 © (07.08.03 09:03)
>Все таки "логика работы" это не только структура таблиц и их >связей. Это еще и например ввод новых/удаление старых действий >юзера => новые формы и т.д. Если все это тянуть при каждом >запуске проги с сервака то... А стОит ли?

Сергей, я думаю на самом деле ты меня понял. Естественно, если появляется действительно НОВАЯ форма то она появляется (Хотя можно мудрить с .dfm в базе и так далее но...). Другое дело если в допустим в результатах отбора появилось еще одно поле. Допустим ищем в справочнике Васю Пупкина, при нахождении показываем список похожих. База выросла и Вась пупкиных там 50 человек. Для отличания нужно еще год рождения показывать. Не изменять же форму в exe?

>Но надо сотнями этот скрипт рассылать. 8-) Кстати не так уж это >хорошо, ИМХО. Если неправильно обновился EXE то он просто >работать не будет, а вот если в скрипте чего недоработал, то >можно и рабочую базу потерять или испортить основательно.
Ну зачем так утрировать? Все же автоматизировано. Скрипт тестируется. Потом при отправке считается контрольная сумма. Когда приходит в целевую точку юзер нажимает 1 кнопку. После этого запускается процесс который:
1) Проверяет текущую версию базы (установлены ли прошлые обновления)
2) Проверяет контрольную сумму присланного скрипта
3) Делает backup базы
4) Прогоняет скрипт
5) Анализирует (возможные) ошибки
6) Если не все OK формирует репорт
Так оно и работает. До последнего времени (пока установок было 200) я вообще этим один занимался, причем этот проект у меня "побочный" (бОльшую часть рабочего времени я занимаюсь не им). А каждая рассылка exe это trouble. Они ж его на кажом клиенте должны поменять, там поменяли там забыли и пойми потом где что ;-)

>Забавно до чего дошла дискуссия
угу




Sergey13   (2003-08-07 09:03:00) [6]

2HSolo © (06.08.03 16:20)
>Не всегда хочется вешать обработку на клиента. Например, что-то типа самодельной генерилки отчетов...

Ну, тут, я думаю, другой случай. Тем паче, обычно, такие "генерилки" действуют по принципу "что видишь то и напечатаю".

2Sergey Masloff ( 06.08.03 19:50)

2HSolo © (06.08.03 16:20)
>Не всегда хочется вешать обработку на клиента. Например, что-то типа самодельной генерилки отчетов...

Ну, тут, я думаю, другой случай. Тем паче, обычно, такие "генерилки" действуют по принципу "что видишь то и напечатаю".

2Sergey Masloff (06.08.03 19:50)
>Ну я сейчас сделал нечто подобное. Работает очень бычтро.
Кто бы сомневался.

>Проблем с обновлением минимум - разослал скрипт 100 Кб и половину логики работы поменял. И не надо сотнями EXE рассылать.

Но надо сотнями этот скрипт рассылать. 8-) Кстати не так уж это хорошо, ИМХО. Если неправильно обновился EXE то он просто работать не будет, а вот если в скрипте чего недоработал, то можно и рабочую базупотерять или испортить основательно.

>А их (установок) у меня сотни четыре. Сейчас. Через полгода возможно 1000 будет.
Бизнес растет. Поздравляю.

> Так что .exe постоянно тот же самый (это в идеале пока до конца не всегда получается).
Вот этого я никогда не пойму наверное. Это что - типа поставил Notepad и с помощью нового файла параметров превратил его в MsWord? 8-)
Все таки "логика работы" это не только структура таблиц и их связей. Это еще и например ввод новых/удаление старых действий юзера => новые формы и т.д. Если все это тянуть при каждом запуске проги с сервака то... А стОит ли?

Я не против серверной обработки, я за... За разумное сочетание с обработкой на клиенте. И "простота обновлений" тут 101-й фактор.
ИМХО что касаемо действительно "логики работы" и не нуждается в действиях опереатора (он только запускает процесс) - то должно на сервере и отрабатываться. Что касается визуализации данных (в широком смысле) - пусть этим занимается клиент.

ЗЫ: Забавно до чего дошла дискуссия от первоначального вопроса. 8-)


Sergey Masloff   (2003-08-06 19:50:00) [7]

MsGuns © (06.08.03 16:41)

>Видел когда-нибудь базу на 11 метров с 5 таблицами, в которых >было не более 1000 записей всего ?
Ну и что. Ну я сейчас сделал нечто подобное. Работает очень бычтро. Проблем с обновлением минимум - разослал скрипт 100 Кб и половину логики работы поменял. И не надо сотнями EXE рассылать. А их (установок) у меня сотни четыре. Сейчас. Через полгода возможно 1000 будет. Причем я не говорю что на клиенте ничего не проверяется - проверяется. Но всякие DisplayMask и маски для TMaskEdit тянутся с сервера. Так что .exe постоянно тот же самый (это в идеале пока до конца не всегда получается).


HSolo   (2003-08-06 16:58:00) [8]

>MsGuns © (06.08.03 16:41)

>Видел когда-нибудь базу на 11 метров с 5 таблицами, в которых было не более 1000 записей всего ? Зато морЯ ХП, вьюшек, генераторов и т.д. Но все (я думаю, процентов 500) - на сервере ! Муть черная !!!

Ой. И видеть не хочу :( Но мы же не будем впадать в крайности? Ни в такую, как Вы описываете, ни в нечто 1С-подобное, когда все тащится на клиента и там обрабатывается. Разумный баланс требуется :)

> Чувство меры - редкое чувство ;(
Это точно (с) т.Сухов



MsGuns   (2003-08-06 16:41:00) [9]

>HSolo © (06.08.03 16:20)
>Не всегда хочется вешать обработку на клиента

Видел когда-нибудь базу на 11 метров с 5 таблицами, в которых было не более 1000 записей всего ? Зато морЯ ХП, вьюшек, генераторов и т.д. Но все (я думаю, процентов 500) - на сервере ! Муть черная !!!

Чувство меры - редкое чувство ;(


HSolo   (2003-08-06 16:20:00) [10]

Не всегда хочется вешать обработку на клиента. Например, что-то типа самодельной генерилки отчетов: в базе лежат тексты запросов, выбираем нужный, скармливаем серверу, полученную выборку выдаем на печать, в Excel или куда там душа пожелает. При таком раскладе желательно, чтобы в выборке все было в готовом виде.


Sergey13   (2003-08-06 16:08:00) [11]

2MsGuns © (06.08.03 16:04)
>Может, он не пользуется Calc-полями и не знает о событии OnGetText филдов ?
Тогда бессмысленно советовать UDF или проверки на NULL. 8-)


MsGuns   (2003-08-06 16:04:00) [12]

>Sergey13 © (06.08.03 15:42)

Может, он не пользуется Calc-полями и не знает о событии OnGetText филдов ?


Sergey13   (2003-08-06 15:42:00) [13]

2ED (06.08.03 11:49)
А чем етбе мой вариант Sergey13 © (06.08.03 11:47) не идет. ИМХО в самый раз. Делай на клиенте с этими полями што хошь.


HSolo   (2003-08-06 15:18:00) [14]

User Defined Function - пользовательская функция
Подробнее:
http://www.ibase.ru/develop.htm(как писать)
http://www.ibase.ru/d_udf.htm(готовые)


NataliK   (2003-08-06 14:52:00) [15]

Извините,что влезаю, а что такое UDF ?
У меня аналогичная проблема и Union не подойдет. Действительно многовато!


MsGuns   (2003-08-06 12:46:00) [16]

>HSolo © (06.08.03 12:42)
>Не многовато будет? :)

Если Родина скажет "НАДО !"
То ED ей ответит "ЕСТЬ !"


;)))


HSolo   (2003-08-06 12:42:00) [17]

Конечно, можно, только для 3 полей - 8 комбинаций. Не многовато будет? :)


MsGuns   (2003-08-06 12:30:00) [18]

Можно через Union, интегрирующий селекты, "перебирающие" в операторе where все возможные комбинации с NULL


HSolo   (2003-08-06 12:25:00) [19]

Тогда UDF или хранимка.
Будь у Вас одно поле с возможными null-ами - можно было бы еще union. Но так как этих полей 3 (верно я понимаю?) - комбинаций будет многовато :)


ED   (2003-08-06 12:09:00) [20]

Я имел ввиду:

field1 = "My "
field2 = NULL
field3 = "field"

=================
Результат - "My field"


Страницы:   1 2

Наверх

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