![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2009
Сообщений: 5
|
Доброе утро!
Есть приложение, созданное на Flex Builder. Необходимо из него законнектиться к Oracle, передать туда SQL и соответственно вернуть из Oracle некий DataSet для отображения его в Flex - приложении. Пока нашла только "кривое" решение: из Flex дергать сервис, который весь результат выполнения SQL запихивает в XML-файл. А Flex уже отображает данные из этого файла (при каждом новом запросе файл будет заменяться). Но это решение не подходит по той причине, что данных может быть ОЧЕНЬ много и на формирование такого файла и соответствующее его отображение уйдет слишком много времени. Должна же быть возможность сделать это как-то проще. Никто не сталкивался с этим? |
|
|||||
|
Регистрация: Sep 2007
Сообщений: 146
|
Формируешь запрос к серверу (java, php), на сервере обрабатываешь запрос, формируешь строку в виде xml, отсылаешь ответом. Во flex, получим xml, присваиваешь dataProvider-у DataGrid-а.
private var myXML:XML = new XML();
private var XML_URL:String = "http://localhost:8080/project/Servlet";
private var urlReq:URLRequest = null;
private var myLoader:URLLoader = null;
private function getRequest():void{
urlReq = new URLRequest(XML_URL);
urlReq.data = urlMap.toVariables();
urlReq.method = URLRequestMethod.POST;
myLoader = new URLLoader(urlReq);
myLoader.addEventListener(Event.COMPLETE,getMetaDataOk);
myLoader.load(urlReq);
}
private function getMetaDataOk(event:Event):void{
myXML = XML(myLoader.data);
// ЗАПОЛНЕНИЕ DATAPROVIDER
}
|
|
|||||
|
[+1 04.05.08]
Регистрация: May 2008
Адрес: Czech, Prague
Сообщений: 65
|
Самое простое и удобное решение работать через RemoteObject
![]() XML отпадает в этом случае. Как уже тут написал Bruiser, для работы с БД нужно всю бизнеслогику по работе с БД выносить на сервер. Серверная часть может быть написана на чём угодно. Цитата:
![]() |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 5
|
Я только начинаю изучать Flex, до этого интерфейс делали другими средствами. До последнего надеялась, что у Flex есть какое-нибудь встроенное визуальное средство для работы с БД, как у того же C++ Builder или .NET хотя бы... Эх
![]() Пейджинг, я так понимаю, надо делать самим? Никаких встроенных средств у DataGrid нет? |
|
|||||
|
Регистрация: Sep 2007
Сообщений: 146
|
Flex - это все-таки среда для разработки интерфейса, а не бизнес-логики.
|
|
|||||
|
[+1 04.05.08]
Регистрация: May 2008
Адрес: Czech, Prague
Сообщений: 65
|
Цитата:
![]() Нужно понять два момента: 1) ClientSide - это всё, что у клиента будет. В данном случае это- Flash 2) ServerSide - это, если нужно работать с БД, посылать почту, обрабатывать большие массивы данных, работать с сенсорами и так далее. Реализацию этих задач выполняют с помощью языков, которые это позволяют. Если нужно использовать .NET фреймвёрк, значит устанавливаем MVS2008 (к примеру) и пишем всё с комфортом. Всё, что будет написано потом вызывается из Flash приложения. Цитата:
Надеюсь, поможет. ![]() |
|
|||||
|
Регистрация: Jun 2008
Адрес: Prague
Сообщений: 32
|
Я уже писал BeautifulGirl, на другом форуме...
Имхо, самый простой способ - это напрямую обращаться к Oracle либо через HTTP сервис, либо через Apex. Решение будет зависить от требований безопасности. Есть еще всякие livecycle data services, но для этого понадобится сервер приложения. Если же промежуточное звено - не проблема, то реализуйте его на том, на чем вам удобнее - .NET тот же вполне подходит. По поводу "очень много данных": как правило клиентское приложение не требует большого количества данных. Т.е. пользователь не в состоянии визуально переварить больше чем 20 записей допустим. Поэтому приложение нужно проектировать так, чтобы не гонять между базой и приложениям мегабайты холостой информации. Добавлено через 49 часов 40 минут Написал пример http://alp-it.ru/2009/02/simple-oracle-flex-connecting/ Удачи! |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:18. |
|
|
« Предыдущая тема | Следующая тема » |
|
|