![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TMenuItem.Click -> any.dll\procedure
Dennis I. Komarov © (2009-05-22 10:38:00)Вопрос - не вопрос но:
Есть: некое приложение, интерфейс которого грузим из некой БД согласно правам пользователя, который запустил это приложение. В частности, возьмем ситуацию с TMainMenu. Согласно правам загрузилось дерево меню и подменюшек. Есть некая "ссылка" (int) на то, что должно выполнится при вызове соответствующего пункта. Процедура сего действия, а так же все интерфейсы и т.п. вынесены в библиотеку (dll).
Вопрос такой: Какая (а точнее, кто придумает лучшую) логика должна быть, чтобы связать конечный пункт менюшки с соответствующей процедурой в библиотеке, при том чтобы выполнялось условие: в приложении описана только логика а конкретные данные вынесены из него, т.е. при добавлении нового пункта (в БД) не изменялось само приложение, а только библиотека (или добавлялась новая)
clickmaker (2009-05-28 11:46:00) [21]> со своими правами, а УЮ библиотека что бы подключиться к
> СУБД должна на ней пройти авторизацию
авторизацию может проводить хост-экзе, а в библиотеку передавать уже готовый интерфейс сервера приложений.
Dennis I. Komarov (2009-05-28 11:43:00) [22]А вот есть интерфейс который успешно работал с MSSQL, ORACLE .... а тут надо внедрить его в систему, которая на битрив работает, а вот УЮ ну не знает что это и как его есть...
Уходим от темы опять???
Обсуждаем трехзвенку, в частности как передать инфу с TDataSet удаленному интерфейсу (не в "формате TDataSet")
MIDAS - первое что пришло - ковыряю его. Какие еще варианты, и отзывы о них...
Сергей М. (2009-05-28 11:33:00) [23]
> не известно умеет ли УЮ вообще работать с этим СУБД
>
А тогда нашиша грузить такую УЮ-библиотеку, которая не понимает чего от нее хотят ?)
Dennis I. Komarov (2009-05-28 11:24:00) [24]
> Зачем ?
>
> Что полезного УЮ-библиотека поимеет, если будет знать, что
> она загружена в АП процесса какого-то там заморского VCL-
> приложения MySuperPuperProga.exe ?)
>
> ТЗ на ходу меняешь-изобретаешь ?)
И ни капельки я не меняю ТЗ. Индивид - не бла-бла-бла.exe а физическое лицо которое запустило этот ...exe :) со своими правами, а УЮ библиотека что бы подключиться к СУБД должна на ней пройти авторизацию, а авторизироваться из каджого интефейса - это по меньшей мере не удобно для юзверя :) Да и еще не известно умеет ли УЮ вообще работать с этим СУБД
> Задействование MIDAS не требует обязательного использования
> CDS.
Про MIDAS я сейчас читаю, посмотрим...
Сергей М. (2009-05-28 11:12:00) [25]
> MIDAS плоха тем, что клиента привязываем к TClientDataSet
Задействование MIDAS не требует обязательного использования CDS.
Сергей М. (2009-05-28 11:08:00) [26]
> библиотека то должна знать что за индивид загрузил ее
Зачем ?
Что полезного УЮ-библиотека поимеет, если будет знать, что она загружена в АП процесса какого-то там заморского VCL-приложения MySuperPuperProga.exe ?)
ТЗ на ходу меняешь-изобретаешь ?)
Dennis I. Komarov (2009-05-28 10:38:00) [27]C моей точки зрения MIDAS плоха тем, что клиента привязываем к TClientDataSet
Dennis I. Komarov (2009-05-28 10:35:00) [28]
> clickmaker © (28.05.09 10:05) [123]
Как раз ее сейчас штудирую. Интересны реальные подводные камни, надежность и пр. кто уже использовал технологию, поэтому вопрос был:
"каким образом Вы......" Ну еще добавить почему? Чем хорошо\плохо и т.д.
Dennis I. Komarov (2009-05-28 10:19:00) [29]:) Ну неуж-то правда не понятно, или специально? :)))
Но библиотека то должна знать что за индивид загрузил ее...
Тут два варианта:
1. передаем данные аунтификации (а так же всю информацию о СУБД) библиотеке и получаем двузвенную архитектуру.
2. Строим промежуточное звено "Сервер приложений" (МА)
clickmaker (2009-05-28 10:05:00) [30]> СУБД - Сервер приложений (это не которое загружает библиотеки)
> - GUI (интерфейс загруженный из библиотеки)
Сервер приложений - н-р, MIDAS или другая DCOM-подобная технология, которая предоставляет методы для вызова.
Клиент - импортирует библиотеку типов сервера и получает данные в виде TClientDataset в случае MIDAS или просто путем вызова методов сервера. Данные передавать и получать можно с помощью любых OLE-совместимых типов: variant, widestring etc
Сергей М. (2009-05-28 09:37:00) [31]
> СУБД - Сервер приложений (это не которое загружает библиотеки)
> - GUI (интерфейс загруженный из библиотеки)
>
Что-то я не вижу никакой связи между "кислым", "теплым" и "зеленым")
Если твое хост-приложение знать ничего не знает и знать не желает о происходящем внутри библиотеки, то какая ему разница, как эта самая библиотека получит данные с какого-то там сервера, дабы, например, изобразить эти данные в своем же собственномGUI ?
Dennis I. Komarov (2009-05-28 08:58:00) [32]
> Т.е. твое хост-приложение должно передавать данные рядом
> находящейся библиотеке с использованием интернет-протокола
> ?
>
> Это ж надо до такого додуматься) ..
Да нет конечно :) И как такое в голову лезет :) Наверное утро :)...
СУБД - Сервер приложений (это не которое загружает библиотеки) - GUI (интерфейс загруженный из библиотеки)
Сергей М. (2009-05-28 08:25:00) [33]
> над TCP/IP .. и передать информацию .. клиенту
Т.е. твое хост-приложение должно передавать данные рядомнаходящейся библиотеке с использованием интернет-протокола ?
Это ж надо до такого додуматься) ..
Сергей М. (2009-05-28 08:14:00) [34]
> не-е... клиент библиотека
А какая разница, где будет размещен код клиента ?
Абсолютно никакой)
Dennis I. Komarov_ (2009-05-27 21:18:00) [35]
> Сергей М. © (27.05.09 20:57) [117]
не-е... клиент библиотека, а обрабатывать инфу через http... ну в принципе реально конечно, но думаю не самое то :)))))
Сергей М. (2009-05-27 20:57:00) [36]
> Нужно придумать протокол обмена (скорее всего над TCP/IP)
> и передать информацию (из DataSet) клиенту
Все уже придумано до и за нас - http называется)
А браузер - тот самый "тонкий клиент")
Dennis I. Komarov_ (2009-05-27 20:22:00) [37]
> И что же библиотека будет делать с тем, о чем она понятия
> не имеет ?
А я не говорил, что она получит TDataSet :)
Нужно придумать протокол обмена (скорее всего над TCP/IP) и передать информацию (из DataSet) клиенту. А как там с ней будут поступать, нас уже не интериует, как впрочем и функционал этой библиотеки. Вот интересуют мысли по этому поводу...
Сергей М. (2009-05-27 20:03:00) [38]
> передача данных TDataSet с сервера, которая в свою очередь,
> понятия не имеет о существовании некой TDataSet
И что же библиотека будет делать с тем, о чем она понятия не имеет ?
Dennis I. Komarov (2009-05-27 17:33:00) [39]
> ... передача данных TDataSet с сервера...
...от сервера приложений библиотеке, которая...
Dennis I. Komarov (2009-05-27 17:17:00) [40]Чтобы не терялась мысль задам тут еще вопрос:
При вышеперечисленных условиях каким образом Вы реализовали "тонкий клиент" к СУБД. из библиотеки?
Больше всего интересует передача данных TDataSet с сервера, которая в свою очередь, понятия не имеет о существовании некой TDataSet