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

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

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

Регистрация: Dec 2010
Сообщений: 177
Question Кто-нибудь юзал asSQL?

Подскажите, пожалуйста, кто знает (догадывается):
Создаю единый слушатель ответов SQL
Код AS3:
function handleServerToApplication(data:Object, token:Object):void {         
	switch(token.info){
		case "query1":
			break;
		case "query2":
			break;
                         // и т.д. и т.д.
	}
}
Теперь вызываю реакцию
Код AS3:
var st:Statement = myConnection.createStatement();
var token:MySqlToken = st.executeQuery("SELECT * FROM table1");        
token.info = "query1";
token.addResponder(new AsyncResponder(handleServerToApplication, fault, token));
token = st.executeQuery("SELECT * FROM table2");        
token.info = "query2";
token.addResponder(new AsyncResponder(handleServerToApplication, fault, token));// и т.д. и т.д.
Есть ли возможность избавиться от постоянного вызова анонимных AsyncResponder?
Можно ли для этого как-то заюзать MySqlService?
Хочется задействовать именно один постоянный слушатель путём единождого вызова.
Очень мало примеров в сети

Спасибо за советы!

Старый 29.01.2013, 19:36
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 2  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Имплементируйте mx.rpc.IResponder и вместо new AsyncResponder(handleServerToApplication, fault, token) пишите this, все данные будут приходить вам в result. Или используйте один респондер для всех токенов.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 29.01.2013, 20:29
zorexundra вне форума Посмотреть профиль Отправить личное сообщение для zorexundra Найти все сообщения от zorexundra
  № 3  
Ответить с цитированием
zorexundra

Регистрация: Dec 2010
Сообщений: 177
Хм... Как это выглядит в коде?

Старый 29.01.2013, 20:39
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 4  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Что именно?
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 29.01.2013, 22:02
zorexundra вне форума Посмотреть профиль Отправить личное сообщение для zorexundra Найти все сообщения от zorexundra
  № 5  
Ответить с цитированием
zorexundra

Регистрация: Dec 2010
Сообщений: 177
Обработка возвращаемых значений расширенным от MySqlToken классом имплементирующем IResponder,
или использование одного респондера для всех токенов. Либо и то, и то.


Последний раз редактировалось zorexundra; 29.01.2013 в 23:35. Причина: уточнение
Старый 29.01.2013, 23:31
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 6  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
В вашем случае нет необходимости передавать токен в AsyncResponder.
Цитата:
хочу, чтобы один единственный слушатель всех sql-ответов различал эти запросы, которые возвращаются в произвольном порядке.
Вы можете добавлять один респондер во все ваши токены и он будет получать все result.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 30.01.2013, 00:50
zorexundra вне форума Посмотреть профиль Отправить личное сообщение для zorexundra Найти все сообщения от zorexundra
  № 7  
Ответить с цитированием
zorexundra

Регистрация: Dec 2010
Сообщений: 177
alatar, я правильно Вас понял?:
Код AS3:
function handleServerToApplication(data:Object, token:Object):void {         
	switch(token.info){
		case "query1":
			break;
		case "query2":
			break;
                         // и т.д. и т.д.
	}
}
var myAsyncResponder:AsyncResponder = new AsyncResponder(handleServerToApplication, fault)
var st:Statement = myConnection.createStatement();
var token:MySqlToken = st.executeQuery("SELECT * FROM table1");        
token.info = "query1";
token.addResponder(myAsyncResponder);
token = st.executeQuery("SELECT * FROM table2");        
token.info = "query2";
token.addResponder(myAsyncResponder);// и т.д. и т.д.
Это будет работать?
Есть ещё идеи как сократить код такого функционала (построить тотже функционал на других готовых компонентах - меня смущает частый вызов addResponder())?

Старый 30.01.2013, 01:06
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 8  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Код AS3:
private var _myAsyncResponder:AsyncResponder = new AsyncResponder(handleServerToApplication, fault)
private var _st:Statement = myConnection.createStatement();
 
private function sendSql(sql:String, info:String):MySqlToken
{
   var token:MySqlToken = _st.executeQuery(sql);        
   token.info = info;
   token.addResponder(_myAsyncResponder);
   return token;
}
 
private function multiCall():void
{
   sendSql('SELECT * FROM table1', 'query1');
   sendSql('SELECT * FROM table2', 'query2');
   sendSql('SELECT * FROM table3', 'query3');
   sendSql('DROP TABLE table3', 'drop3');
}
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 30.01.2013, 11:51
zorexundra вне форума Посмотреть профиль Отправить личное сообщение для zorexundra Найти все сообщения от zorexundra
  № 9  
Ответить с цитированием
zorexundra

Регистрация: Dec 2010
Сообщений: 177
GBee, я проверил своё предположение: если конструктору AsyncResponder не передать token, то handleServerToApplication не получает token в ответ на событие. Такто.

Старый 30.01.2013, 12:33
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 10  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Зачем вам вообще знать какой токен вернул результат?
__________________
משיח לא בא
משיח גם לא מטלפן

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

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

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


 


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


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