Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.04.2012, 18:57
Чеширский Кот вне форума Посмотреть профиль Отправить личное сообщение для Чеширский Кот Найти все сообщения от Чеширский Кот
  № 1  
Ответить с цитированием
Чеширский Кот

Регистрация: Mar 2012
Сообщений: 40
По умолчанию Потеря данных

Здравствуйте!

БД (база даных) <----> CF(ColdFusion 9) <-----> Приложение (main.swf)

Флешка (main.swf) лежит на сервере. Запускаю ее удаленно http://192.168.111.1/dev/main.swf с локальной машины.

1) Флешка открывается, в ней есть форма. Данные формы сохраняются и записываются в БД. Закрыли форму.
2) Открыли ее вновь и данные (которые сейчас заполняли) должны были загрузиться и отобразиться в форме.
Но этого не случилось.
Тест показал, что после запроса(на получение данных для формы из БД) данные получены CF и отправлены во флешку, но во флешку уже приходит пустой запрос, т.е. данные потерялись на этапе
CF(ColdFusion 9) -----> Приложение (main.swf)
есть данные нет данных

Локально все хорошо.

Видимо проблема с серваком, но если напрямую указать путь, например к фото на серваке (которое было загружено ранее), то она отобразится в форме, т.е. не приходят именно данные почему-то...

Из-за чего они могут не доходить до адресата?

на серваке: IIS 6.0, Windows 2003
C:\Inetpub\wwwroot\dev\main.swf


Причем ответ приходит в виде ac:ArrayCollection.
ac[0] - Object с кучей подданных, если можно так выразиться.
Так вот, когда все хорошо, то данные в Object есть.
А когда все плохо, то именно ДАННЫХ в Object нет.
А ас[0] приходит, но без данных.
Грешил, что сервак данные /"не отдает/", но ведь пользователь проверку (логин/пароль) проходит.
А уже потом заполняет форму.


Последний раз редактировалось Чеширский Кот; 09.04.2012 в 15:33.
Старый 11.04.2012, 16:41
Чеширский Кот вне форума Посмотреть профиль Отправить личное сообщение для Чеширский Кот Найти все сообщения от Чеширский Кот
  № 2  
Ответить с цитированием
Чеширский Кот

Регистрация: Mar 2012
Сообщений: 40
Тут сало веселее...

Добавил в форму, для теста, DataGrid и привязал к нему напрямую вызов этого метода, который с пустыми данными приходит.
И что вы думаете? В таблице они отображаются!
relative.cfc (здесь хранятся методы для работы с БД).


Код AS3:
public var relatives:Relatives = new Relatives();
 
 
protected function init():void
{
      relatives.addEventListener(ResultEvent.RESULT, onResult_relatives);
      relatives.addEventListener(FaultEvent.FAULT, onFault_relatives);
}
 
protected function getRelativeById(IdRelative:Number):void
{
      relatives.getRelativeById(IdRelative); 
}
 
private function onResult_relatives(event:ResultEvent):void
{
      // здесь ловлю данные 
      var ac:ArrayCollection = new ArrayCollection();
      ac = event.currentTarget.operations.getRelativeById.lastResult;
      var obj:Object = ac.getItemAt(0);
 
      // и уже из obj получаю локально данные, а на серваке приходят "undefined"
      // локально: obj.name = "Иван"; на серваке obj.name = "undefined"
}


К тому же так же решил прослушать и DataGrid... результат тоже "undefined", но данные в таблице!
Что за "мистика"!?

Добавлено через 19 часов 9 минут
У меня ощущение, что проблема с типами данных...

Добавлено через 22 часа 42 минуты
Может беда взаимосвязи между сервером и флешкой?

Коммуникация между сервером и флешем происходит благодаря ColdFusion.
В частности к файлу relative.cfc, который привязан к приложению.
Как сделано здесь:
пример

Вот через это (Данные/службы в Flash Builder 4)
[IMG]http://s2.************/uploads/20120412/QGo36xr9.png[/IMG]

А отсюда сделал у себя DataGrid для теста в форме
пример2



Кстати, сделал тип данных : RelativeDataType (как видно из картинки)
И после этого данные в DataGrid перестали правильно отображаться (приходят только нули в столбцы (idrelative:int и iduser:int),
т.е. там где тип данных int - приходит ноль. А в остальные пусто(null) ).

Здесь возвращаемый тип данных RelativeDataType у метода (relatives.getRelativeById(IdRelative))
Стало так:
[IMG]http://s1.************/uploads/20120412/zT1BUUZ0.png[/IMG]


Здесь возвращаемый тип данных Object у метода (relatives.getRelativeById(IdRelative))
А было так:
[IMG]http://s2.************/uploads/20120412/ZoWLf54m.png[/IMG]

Вот поэтому и грешу на типы данных.

Вот в чем может быть беда? По ощущением какая-то фигня, может разрешение где приписать надо, видимо на серверной стороне не знают, что такое за тип данных RelativeDataType. Как серверу об этом узнать? Или может в чем-то другом беда...

Добавлено через 25 часов 48 минут
Код:
<cffunction name="getRelativeByIdFirstname" output="false" access="remote" returntype="any" >
	<cfargument name="IdRelative" required="yes" type="numeric"/>	
		  
	<cfset var qGetRelativeByIdFirstname="">
	<cfquery name="qGetRelativeByIdFirstname" datasource="familytreeSource">
		SELECT IdRelative,FirstName,IdUser
		FROM relatives
		WHERE IdRelative = <cfqueryparam cfsqltype="CF_SQL_INTEGER" value="#IdRelative#">	
	</cfquery>
	<cfreturn qGetRelativeByIdFirstname.FirstName>
</cffunction>
Вот метод, который забирает простой тип данных. В данном случае получаю Имя.
А когда я пытаюсь передать свой тип данных - пользовательский (RelativeDataType) , то беда.
Надо разобраться, каким образом сервер должен узнавать о пользовательских типах данных.

Добавлено через 42 часа 42 минуты
Проблема решилась профилированием кода с 1 ночи и до 8 утра.
В результате метод, который работал, дома после правки кода, стал неадекватно работать - перестал доходить до места, где заполнял таблицу данными. Это первое.
А второе, что могло быть... на локалке сервер C:\ColdFusion9\wwwroot и cfc файлы там же, а на серваке это C:\Inetpub\wwwroot
может и из-за этого что пути разные были, но вряд ли.
А третье, это Данные/службы в Flash Builder : сначала тестовый пример, который билдер предлагает сделать, через RDS. А уже потом в получившейся cfc файл добавил свои методы. И скорее всего из-за этого была проблема.

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:32.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:32.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.