PDA

Просмотр полной версии : Alert.show(query2.Records.length.toString());


lighto
07.09.2009, 14:53
Подскажите почему так? У меня есть запрос к базе данных, он возвращает что-либо.
А когда я пытаюсь следом за запросом вытащить длинну самого запроса в событие Alert.show() оно у меня выходит только со второго раза? как мне сделать что бы выходило с 1 раза.


private function TestIt():void
{

if ((txtPassword.length == 0))
{
Alert.show("Укажите пароль");
return;
txtPassword.setFocus();
}

query2.addEventListener(Query.QUERY_END,queryUsers1End);
query2.execute("Select id,username,password from Users where id="+Combo1.selectedItem.id+" and password='"+txtPassword.text+"'");
Alert.show(query2.Records.length.toString());}


То есть если правильно введено мне lenght должно выдать 1 а если нет 0 так вот он выдает 1 но только со 2 раза а нужно так что бы с 1 раза выдовал.

wvxvw
07.09.2009, 17:47
Как бы ваш код вообще ни о чем не говорит... Не понятно вообще что такое TestIt - если это метод, то почему с прописной, если это конструктор, то почему указан возвращаемый тип? - соответственно не понятно когда вы ее вызываете, и что при этом должно быть в txtPassword.

Rarek
22.09.2009, 15:55
Может я и поздно, но все таки попробую ответить... Если используется пакет phi, то в нем эвент QUERY_END "Dispatched after the SQL statement was executed." Т.е. Как экзекьютили запрос. Но! В реальности этот эвент привязан к окончанию передачи данных на сервер а не к окончанию приема. В итоге когда вызывается диспатчер - клиент еще не получил данных с сервера.

lighto
23.09.2009, 09:01
Может я и поздно, но все таки попробую ответить... Если используется пакет phi, то в нем эвент QUERY_END "Dispatched after the SQL statement was executed." Т.е. Как экзекьютили запрос. Но! В реальности этот эвент привязан к окончанию передачи данных на сервер а не к окончанию приема. В итоге когда вызывается диспатчер - клиент еще не получил данных с сервера.

Спасибо я уже понял что ему время было нужно я сделал задержку через таймер и усе ОК))) пасиба что ответил) не поленился)))

yorlin
23.09.2009, 12:52
Спасибо я уже понял что ему время было нужно я сделал задержку через таймер и усе ОК))) пасиба что ответил) не поленился)))
А если задержка ответа будет больше чем таймер?

lighto
23.09.2009, 14:14
МММ а такое возможно??? я об этом не подумал. и что подскажите?

yorlin
23.09.2009, 14:39
Добавлено через 11 минут
Возможно. Нужно алерт вызывать в функции queryUsers1End...а почему не использовать HTTPService?
Вам проще хранить всю информацию о базе (пароли, адреса) во флешке?

lighto
23.09.2009, 15:06
спасибо. попробую через сервисы)