![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2009
Сообщений: 22
|
Доброго всем времени суток, прошу помочь с такой проблемой: суть проблемы, значит дергаю я процедуру Java, которая в свою очередь дергает функцию Oracle, выходным параметром которой является Clob, проблема в том что не могу прибиндить этот Clob к DataGrid, а вот и код проблемный
private function getData():void { DC.addEventListener(ResultEvent.RESULT,resultHandler); DC.addEventListener(FaultEvent.FAULT,faultHandler); DC.getData(); } private function resultHandler(eve:ResultEvent):void{ var data:Object = eve.message.body; } private function faultHandler(eve:FaultEvent):void{ Alert.show(eve.message.toString()); } ]]> </mx:Script> <mx:RemoteObject id="DC" destination="getDataCLOB" > <mx:method name="get_clob" result="resultHandler(event);" fault="faultHandler(event);"/> </mx:RemoteObject> <mx:Button label="click" click="getData()"> </mx:Button> <mx:DataGrid name="dg" x="10" y="39" dataProvider="{data.device.device_row}"> <mx:columns> <mx:DataGridColumn headerText="Column 1" dataField="device_name"/> </mx:columns> </mx:DataGrid> </mx:Application>, заранее благодарен |
|
|||||
|
Проблема в том, что Flex не знает такого типа. Посмотри внимательно всякую документацию, там написано какие типы данных нормально сериализуются через BlazeDS и LCDS.
Здесь есть два варианта: 1. Простой но не самый правильный. преобразовать Clob в строку на стороне Java и на клиентскую часть паередавать уже строку. 2. Сложнее но более правильный (т.к. боооольшие объёмы данных лучше обрабатывать ассинхронно). Подключаться к серваку не через RemoteObject, а другим способом. И передавать данные как StringBuffer, на клиенте всё собирать и уже потом отправлять в таблицу. Первый вариант решается очевидным способом. Второй вариант - чисто теоретический, такими задачами я не занимался. |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 22
|
Спасибо большое за совет, второй способ конечно лучше но я не знаю как ещё и какой связкой можно дергать процедуры Oracle, а первый способ конечно ударит сильно по производительности, но все равно спасибо, и ещё если Вы знаете какие нибудь подходящие к данной задачи связки, будьте добры мне написать
|
|
|||||
|
Самое простое, что мне приходит в голову - создать свой сервлет, который просто возвращает в поток данные. А из флекса просто дёргать URL этого сервлета и ожидать полной загрузки
![]() |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 22
|
Спасибо буду думать как это сделать на сервлете, так как я с сервлетами не очень хорошо знаком, не , не так, лучше будет сказать, очень не хорошо знаком.
По началу я думал всю логику делать на Java классах, не прибегая к Web средствам реализованным на Java (боязнь за производительность), ну ладно я что-то отвлекся и ещё раз спасибо как за совет, так и за внимание Добавлено через 6 часов 46 минут все получилось, вместо Clob решил передать ArrayList, во Flex его конверчу в XMLList используя event.result.source |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|