Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Поместить в коллекцию все экземпляры объекта, [WebMethod]
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста, как в Cache' реализовать метод, используя коллекции объектов, который бы возвращал все экземпляры объекта? Задача такая у меня: используя вебсервисы отправить с сервера Cache' на клиент (реализуется на Adobe Flex) список объектов, используя в качестве контейнера xml или коллекции объектов. Нужно с коллекциями реализовать, но если кто нибудь подскажет как с xml сделать - буду очень рад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2011, 23:19 |
|
||
|
Поместить в коллекцию все экземпляры объекта, [WebMethod]
|
|||
|---|---|---|---|
|
#18+
покажите, какой xml Вы хотите получить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2011, 05:33 |
|
||
|
Поместить в коллекцию все экземпляры объекта, [WebMethod]
|
|||
|---|---|---|---|
|
#18+
Если нужно вернуть список объектов - пример во вложении. Если просто xml - пишете этот xml в строку или в поток и возвращаете. Разница в том, что хотите получить на клиенте. Список объектов на клиенте можно автоматически десериализовать, а строку в которой передается xml - нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2011, 07:43 |
|
||
|
Поместить в коллекцию все экземпляры объекта, [WebMethod]
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2011, 07:44 |
|
||
|
Поместить в коллекцию все экземпляры объекта, [WebMethod]
|
|||
|---|---|---|---|
|
#18+
Если чушь сморозил насчет xml, сильно не пинайте. У меня в задании написано, что нужно отправить список объектов сервера на клиент. Вот я и думаю,как же это реализовать? Если некий метод типа GetAll() что бы получить все экземпляры объекта? Может быть нужно в цикле отправлять клиенту по одному экземпляру объекта, пока все не закончатся? ТОлько как узнать сколько их в таблице? Все очень примитивно:есть класс Studentik1 Class MainApp.Studentik1 Extends (%Persistent, %Populate, %XML.Adaptor) { Property Name As %String; } Нужен метод который вернет все записи из таблицы... Предполагаю что можно сделать так Method GetAllStudents() As %ListOfObjects [ WebMethod ] { Set stud = ##class(%ListOfObjects).%New() // бежим по всем экземплярам и добавляем в листофобджект Quit stud } только вот как это реализовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2011, 09:12 |
|
||
|
Поместить в коллекцию все экземпляры объекта, [WebMethod]
|
|||
|---|---|---|---|
|
#18+
andrew_tswЕсли нужно вернуть список объектов - пример во вложении. Если просто xml - пишете этот xml в строку или в поток и возвращаете. Разница в том, что хотите получить на клиенте. Список объектов на клиенте можно автоматически десериализовать, а строку в которой передается xml - нельзя. Спасибо пошел изучать. Не критично в чем передавать список объектов, желательно конечно в ListOfObjects. Клиент у меня пишется на Flex. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2011, 09:28 |
|
||
|
Поместить в коллекцию все экземпляры объекта, [WebMethod]
|
|||
|---|---|---|---|
|
#18+
dampir_sanekУ меня в задании написано, что нужно отправить список объектов сервера на клиент. Вот я и думаю,как же это реализовать? Вот примеры из доки... Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2011, 09:41 |
|
||
|
Поместить в коллекцию все экземпляры объекта, [WebMethod]
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2011, 09:42 |
|
||
|
Поместить в коллекцию все экземпляры объекта, [WebMethod]
|
|||
|---|---|---|---|
|
#18+
Знаю про эти примеры, уже все с датасетами перепробовал. Но читаем внимательно сноску The WSDL schema and XML format of %XML.DataSet are in proprietary Microsoft dataset format . Only Caché or .net web clients will understand this format. To output results of a query so that a Java-based Web client can work with it, use a %ListOfObjects subclass; there is an example in SOAP.Demo in the Samples namespace. умен клиент на Flex, там просто невозможно присоединить WSDL где есть dataset... ну не понимает он его. Вот и мучаюсь через листофобджект. andrew_tsw в твоем примере как вернуть все объекты?? s list = ##class(%ListOfObjects).%New() s item = ##class(USER.TestClass).%New() s item.A = "A1" s item.B = "B1" do list.Insert(item) // тут ведь только один возвращается... q list Или может я что то реально не догоняю... Есть класс Studentik1, заполненный Populate. там 10 записей = 10 Name'ов, как мне в ListOfObjects получить все Name?? Мне их нужно в DataGrid в клиенте отобразить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2011, 10:05 |
|
||
|
Поместить в коллекцию все экземпляры объекта, [WebMethod]
|
|||
|---|---|---|---|
|
#18+
dampir_sanek , как вариант - запрашивать данные порциями, пока они не закончатся... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2011, 10:07 |
|
||
|
Поместить в коллекцию все экземпляры объекта, [WebMethod]
|
|||
|---|---|---|---|
|
#18+
krvsa dampir_sanek , как вариант - запрашивать данные порциями, пока они не закончатся... Да, вот чего и не могу понять как делать... Вот как рассуждаюб вижу этот метод: Method GetAllStudents() As %ListOfObjects [ WebMethod ] { s list = ##class(%ListOfObjects).%New() s item = ##class(MainApp.Studentik1).%New() s item.Name = ##class(MainApp.Studentik1).%OpenId( do { s item.Name = ##class(MainApp.Studentik1).%OpenId( do list.Insert(item) if item.Name '= "" do list.Insert(item) s i=i+1 } while Item.Name '= "" q list } что то типа такого, пока Name определен, вставляем его в список, иначе выход и возвращаем список ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2011, 10:29 |
|
||
|
Поместить в коллекцию все экземпляры объекта, [WebMethod]
|
|||
|---|---|---|---|
|
#18+
Method GetAllStudents() As %ListOfObjects [ WebMethod ] { s list = ##class(%ListOfObjects).%New() s item = ##class(MainApp.Studentik1).%New() s query = ##class(%ResultSet).%New("%DynamicQuery:SQL") do query.Prepare("SELECT ID, NAME FROM MainApp.Studentik1") do query.Execute() while (query.Next()) { s id = query.Data("ID") s item = ##class(MainApp.Studentik1).%OpenId(id) do list.Insert(item) } q list } Сделал вот так! Но при нажатии на Service Description вылазит окошко, CSP error occurred Error: Class must be XML enabled. ErrorNo: 6361 CSP Page: /csp/user/MainApp.MyServ.CLS Namespace: USER Class: MainApp.MyServ Как исправить подскажите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2011, 10:49 |
|
||
|
Поместить в коллекцию все экземпляры объекта, [WebMethod]
|
|||
|---|---|---|---|
|
#18+
dampir_sanekДа, вот чего и не могу понять как делать... Я бы это рассматривал так: - Запрос на сервер (первый) - Запускается джоб, который будет выбирать нужные данные из класса. Джоб тот должен иметь некий идентификатор - Сервер возвращает экземпляр класса и идентификатор джоба - Клиент забирает данные, если ответ не "пустой" - делает запрос на сервер с указанием идентификатора джоба - Сервер, используя идентификатор джоба, выдаёт следующий экземпляр класса либо "пусто", если данных больше нет - Клиент разбирает данные. Если ответ "пуст" - они кончились... Если нет - шлет запрос с идентификатором джоба... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2011, 10:59 |
|
||
|
Поместить в коллекцию все экземпляры объекта, [WebMethod]
|
|||
|---|---|---|---|
|
#18+
dampir_sanekНо при нажатии на Service Description вылазит окошко, CSP error occurred Error: Class must be XML enabled. ErrorNo: 6361 CSP Page: /csp/user/MainApp.MyServ.CLS Namespace: USER Class: MainApp.MyServ Как исправить подскажите? Попробуйте вместо %ListOfObjects использовать свой класс (как это показано в примере SOAP.Demo): Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2011, 12:31 |
|
||
|
|

start [/forum/topic.php?fid=39&gotonew=1&tid=1557798]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 399ms |

| 0 / 0 |
