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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.08.2010, 09:42
GregoryR вне форума Посмотреть профиль Отправить личное сообщение для GregoryR Найти все сообщения от GregoryR
  № 1  
Ответить с цитированием
GregoryR

Регистрация: Aug 2010
Сообщений: 5
По умолчанию Не обновляет базу в MySQL

Столкнулся с такой вот проблемой:
Есть Flex4, он соединяется посредством php (и Zend) с MySQL. Чтение базы происходит корректно, а вот операции с изменением данных нет, т.е. попытка удалить запись выполняется без ошибок (правда мы не получаем событие ответа от респондера), но данные не изменяются.

Самое интересное, что в режиме "Тестовая операция" данные в MySQL изменяются! В режиме же запуска из AS3 - нет.

Вот пример AS3 обработчика отправки данных по нажатию кнопки:


var vehicles:Vehicles = new Vehicles();
vehicles.id_userowner = parseInt(id_userownerTextInput.text);
vehicles.name = nameTextInput.text;
vehicles.registration_number= registrationNumber.text;

createVehiclesResult.token = vehiclesService.createVehicles(vehicles);


Есть так же теги:
<valueObjects:Vehicles id="vehicles"/>
<s:CallResponder id="createVehiclesResult" result="createVehiclesResult_resultHandler(event)"/>

но функция "createVehiclesResult_resultHandler" так и не вызывается.


Особая засада с тем, что тестовая операция создания записи с подключенным сервисом и следующими входными данными
{
name:Mersedes,
id_userowner:5,
registration_number:x545x96
}

срабатывает перкрасно и запись в MySQL базе данных появляется, а вот из AS3 - нет.

----

Буду рад за любые идеи и советы. Спасибо.


--------------------------------------------------------------------------------------------------
UDP: решение найдено
Похоже это внутренний глюк Flash Builder 4.

Решается изменением типов функции и переменных:

Было

public function createUsers(item:valueObjects.Users) : mx.data.ItemReference
{
var _internal_operation:mx.rpc.AbstractOperation = _serviceControl.getOperation("createUsers");
var _internal_token:mx.data.ItemReference = _internal_operation.send(item) as mx.data.ItemReference;

return _internal_token;
}


Стало

public function createUsers(item:valueObjects.Users) : mx.rpc.AsyncToken
{
var _internal_operation:mx.rpc.AbstractOperation = _serviceControl.getOperation("createUsers");
var _internal_token:mx.rpc.AsyncToken = _internal_operation.send(item) as mx.rpc.AsyncToken;

return _internal_token;
}


Кроме того выявлен еще один баг, функция удаления записей то же не работала.

Решается так: ищем файл php с описанием сервиса, в нем в изменяем наименование функции вида
public function delete<table> (например deleteUsers)

на
public function delete<table>_test (например deleteUsers_test)

после этого меняем название в AS-файле вида _Super_<table>Service (например _Super_UsersSerivice)
в строке
var _internal_operation:mx.rpc.AbstractOperation = _serviceControl.getOperation("deleteUsers");
на
var _internal_operation:mx.rpc.AbstractOperation = _serviceControl.getOperation("deleteUsers_test");
функции public function delete<table>(itemID:Object) : mx.rpc.AsyncToken

после этого всё начинает работать как надо, потом можно поменять названия функций на исходные, но все продолжит работать корректно.

--------------------------------------------------------------------------------------------------


Последний раз редактировалось GregoryR; 20.08.2010 в 16:29. Причина: Решение найдено
Создать новую тему Ответ Часовой пояс GMT +4, время: 02:10.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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