Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.11.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.015 c
6-59315
alexsandri
2002-09-21 21:06
2002.11.18
необходимо программно выключить комрп в сети


14-59385
Groove_
2002-10-27 09:01
2002.11.18
У мя косяк с DSpack om


4-59499
Дмитрий Иванов
2002-10-04 16:24
2002.11.18
HOT-KEY в чужом окне


6-59301
IGORka
2002-09-02 19:00
2002.11.18
Имя пользователя


7-59461
REA
2002-09-16 10:42
2002.11.18
File Cache





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский