Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.18;
Скачать: CL | DM;

Вниз

Работа с наборами записей в трехуровневом приложении.   Найти похожие ветки 

 
mvg_first ©   (2002-11-07 13:39) [0]

Подскажите как можно передавать наборы записий от сервера приложений клиенту. Поясню на примере.

Есть у меня MSSQL Server - 1-е звено, сервер приложениий обрабатывающий бизнес-логику - 2-е звено и "тонкий клиент" занимающийся только отображением данных. Т.е. трехзвенная архитектура. Теперь моя проблема.

Когда я с клиента посылаю команду - определяющую выполнение бизнес функции, сервер приложений должен обработать данные и вернуть на клиент результат. Так?
Но что делать когда у сервер приложений должен вернуть набор записей? Т.е. например объединненые таблицы по правилам бизнес-логики, с отбором по правам просмотра для конкретного пользователя.
И при этом что бы данные отобразились на клиенте в DBGrid-e?


 
mvg_first ©   (2002-11-07 14:51) [1]

Господа? Я задал тяжелый вопрос? У этого вопроса нет никаого решения? Не молчите плиз.


 
mvg_first ©   (2002-11-07 15:28) [2]

меня игнорируют? Почему? Рассовая дискриминация? Или тому есть другие причины?


 
Erik ©   (2002-11-07 16:06) [3]

А чем стандартный провайдер тебя несутраивает!? Он занимается передачей данных туда и изменений назад назад. Read Help Midas.


 
mvg_first ©   (2002-11-07 16:32) [4]

Не знаю, мидас я еще не рассматривал, обязательно прочту, но на всякий случай спрошу сразу. Можно ли используя стандартный провайдер, на сервере приложений выполнить операции допустим умножить колонку во всей таблице на 2 и передать результат на клиент? Или убрать каждую вторую запись?


 
Набережных С.   (2002-11-07 16:41) [5]

Посмотри в сторону интерфейса IStrings. Ну и про Variant не забывай.

>меня игнорируют? Почему? Рассовая дискриминация?
У тебя комплексы на рассовой почве?


 
mvg_first ©   (2002-11-07 17:01) [6]

Istrings - позволит мне работать с наборами записей в содержащии поля разных типов данных? Т.е. если я на сервере приложений из Таблицы выберу 3000 записей а в таблице есть различные колонки, то смогу я через IStrings передать эти данные на клиент, так что бы клиент не задумывался о способе их преобразования?

Мой вопрос больше касается того как культурно отобразить данные на клиенте используюя DBGrid ориентированные компоненты.

------
Оффтоп.
Рассовых комплексов, нет но подумалось что они могут присутствовать у людей посещающих этот форум. Я сам из украины, а судя по форуму "Потрепаться" у некоторых предвзятое отношение к таким как я.
P.S. Не воспринимайте это как наезд, я никого не хотел обидеть.


 
Набережных С.   (2002-11-07 18:37) [7]

mvg_first © (07.11.02 17:01)
Нет, чтобы не задумывался - не получится, если клинту не подойдет представление всех данных в строковом виде. Единственный способ этого добиться без компонентов MIDAS - писать собственный маршаллинг, стандартный или через IMarshal. Я думал написать небольшую статью по использования для этого IMarshal, даже пример подготовил, но не уверен, что тема будет интересна многим, все-таки она довольно специфична. Если хочешь - могу выслать, только надо чуть подчистить. Ну а в принципе, через MIDAS ты можешь отправлять что угодно и корректировать как угодно, надо только хорошо разобраться с этим самым MIDAS :) Еще вариант - свой интерфейс с идеологией IEnum, но тут будет много коротких сетевых пакетов при невозможности их оптимизации по размеру. Также можно использовать COM-объект в DLL для разбора пакета на клиенте, но клиенту придется этот объект подключать и использовать вручную. Ну и, наконец, можно написать обычный компонент, который клиенты будут использовать для связи и обмена с сервером.



 
mvg_first ©   (2002-11-07 20:25) [8]

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


 
Набережных С.   (2002-11-07 21:22) [9]

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


 
asmith   (2002-11-07 21:23) [10]

Если необходимо передать табличные данные, самый простой способ - это использовать на сервере srvClientDataSet и передавать ClientDataSet.Data, на клиенте принять через Variant и присвоить cliClientDataSet.Data := VarData


 
mvg_first ©   (2002-11-08 12:24) [11]

To Набережных С
Не получил я ничего, похожего, да и вообще никаких файлов не приходило (кроме рассылок) со вчерашнего дня. Может какие то проблемы ???

Попробуй кинуть еще на эти
mvg@0day.ru
mvgfirst@myrealbox.com


 
Набережных С.   (2002-11-08 14:01) [12]

Проблемы, скорей всего, у тебя. Отправил еще на оба. 40 К в ZIP, могу еще куда-нибудь:) Обязательно сообщи получил-не получил.


 
¤NoNaMe¤ ©   (2002-11-08 14:31) [13]

2 Набережных С.

Вышли мне тоже твою статью, плиз.

на nnm@sfothome.net или kde@gmx.net


 
mvg_first ©   (2002-11-08 15:03) [14]

Получил, получил, на оба ящика получил :) Видимо пробелмы с NM.ru плугавый он какойто :(

To All
Да бы дискуссия не умерла, у меня еще один вопрос
Подскажите как можно шифровать пароль передаваемый при логине на Сервер приложений, и как организовывать безопасные каналы, в таких случаях? Т.е. что бы канал шифровался или ключем или еще как-нить защищался? Если подобные средства?


 
Demon[DZ]   (2002-11-08 15:09) [15]

2 Набережных С.
Если не трудно то и мне вышли, плиз!
slava@wess.lv


 
mvg_first ©   (2002-11-08 15:15) [16]

Как видно, не такая уж бесполезная тема оказалась.
Господа, не забрасывайте её пожалйста :). У меня еще много вопросов.


 
Набережных С.   (2002-11-08 15:21) [17]

>¤NoNaMe¤ © (08.11.02 14:31)
Думать - не значит написать, особенно для меня:) Есть пример реализации, чисто демонстрационный, его отправил.

>mvg_first © (08.11.02 15:03)
Все средства есть в COM. Посмотри здесь:
http://rsdn.ru/article/?com/comsec.xml


 
Набережных С.   (2002-11-08 15:29) [18]

>Demon[DZ] (08.11.02 15:09)
Ушло.


 
mvg_first ©   (2002-11-08 15:52) [19]


> Все средства есть в COM. Посмотри здесь:

А если я хочу использовать SoketConnection?


 
Набережных С.   (2002-11-08 16:42) [20]

>mvg_first © (08.11.02 15:52)
>А если я хочу использовать SoketConnection?

Хочешь - используй, кто же запретит:). Я не очень знаком с SoketConnection, но в любом случае можно спуститься ступенькой ниже и работать напрямую с пакетами защиты. Копай в сторону SSPI, CryptoAPI. Честное слово, тема слишком велика для реального обсуждения в сети, одно цепляет за собой другое и так без конца. Найди книгу Рихтер, Кларк, "Программирование серверных приложений в Windows2000". Лучше я ничего не видел. И, кстати, не жди от сокетов какого-либо особого выигрыша, скорее наоборот, например проблемы при падении клиентов. Обычно ORPC использует UDP, и на то есть веские причины, связанные с балансом трафик/надежность/безопасность. Плюс, как я понимаю, BSS добавляет еще одно звено в цепи, что может только замедлить скорость, хотя, возможно, я ошибаюсь. Но зато с DCOM масса проблем при работе через Internet.



 
Набережных С.   (2002-11-08 16:56) [21]

Еще одно. С BSS плотно работал Digitman, он тебе лучше про это раскажет.



Страницы: 1 вся ветка

Текущий архив: 2002.11.18;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.021 c
1-59084
Linch
2002-11-07 13:45
2002.11.18
Глобальные переменные


6-59312
Bazzik
2002-08-24 15:02
2002.11.18
Как узнать объем internet-трафика


14-59426
lipskiy
2002-10-17 20:58
2002.11.18
Как в XP запаролить конкретный ресурс (папку)?


1-59236
deffer
2002-11-06 18:24
2002.11.18
Как идеологически правильно?


1-59262
Uran
2002-11-05 09:02
2002.11.18
Поиск в html файле.