Просмотр полной версии : При помощи AS3 (или Flex) можно подключиться к mysql базе данных?
Можно
Собственно ответ=)
Если серьезно как не знаю, не пытался, и не собираюсь. В оболочках вроде AIR/MDM Zinc, когда пишешь свою оболчку скажем на C# опять же легче пользоватся C#, а если в нете, то не безопасно это.
Вообще надо копать в сторону MySQL спецификации, смотреть че он принимает и отправляет.
Уже написанно несколько драйверов - один из них http://maclema.com/assql/
а что делать с файлом asSQL_Beta1_Flex201.swc ?
Я поместил его в папку Flex Builder 2\Flex SDK 2\frameworks\libs..
при отладке вышла ошибка
The prefix "sql" for element "sql:MysqlService" is not bound.
пс.
простите, что про флекс в этой ветке спрашиваю
vooparker
31.08.2007, 17:22
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:sql="com.maclema.mysql.controls.*">
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:sql="com.maclema.mysql.controls.*">
<mx:Script>
<![CDATA[
private function callService(sql:String):void
{
sqlService.send(sql);
}
]]>
</mx:Script>
<sql:MysqlService id="sqlService"
host="database.mydomain.com"
port="3306"
user="username"
scrambler="{new PlainTextScrambler('password')}"
database="databaseName"
response="onResponse(event)"
error="onError(event)" />
<mx:ComboBox id="cbx1" dataProvider="{sqlService.lastResult}" labelField="userName" />
</mx:Application>
1046: Type was not found or was not a compile-time constant: MysqlService.
А это обязательно не с внешнего сервера что-то подключать?
vooparker
31.08.2007, 18:10
а swc к проекту добавлен? Проверь Project > Properties > Flex Build Path > Library Path
Собственно об этом я и спросил на 3 топа выше..
Теперь подключил к проекту, но ошибка та же..
vooparker
31.08.2007, 23:17
у меня нормально все подключается и собирается приложение =)
рад за тебя..
xmlns:sql="com.maclema.mysql.controls.*"
зачем такая ссылка, если swc подключена к проекту?
vooparker
03.09.2007, 10:30
это не ссылка, а объявление простанства имен. Посмотри на mxml:
<sql:MysqlService...
Откуда mxmlc знает где брать MysqlService? Вот мы ему и подсказываем:
xmlns:sql="com.maclema.mysql.controls.*"
Если ты используешь as3 для создание экземпляра MysqlService тогда тебе не потребуется объявлять пространство имен. В этом случае ты используешь import:
import com.maclema.mysql.controls.*
Не судьба мне ползьзоваться assql походу, зато получилось asql..
Точно такая же ошибка как у Ноябрь.
vooparker, а есть возможность выложить пример кода(а лучьше целый проект) который работает, хотябы компилируется?
Не судьба мне ползьзоваться assql походу, зато получилось asql..
Расскажите пожалуйста как им пользоваться.
http://asql.mooska.pl/
Как подключить этот asql ??
Я скачал там папка pl, что с ней делать?
vooparker
04.10.2007, 17:49
2Ноябрь и Alex_B: на счет assql, код который приведен на http://maclema.com/assql/ не работает по той причине что он приведен для alpha версии assql, а именно она у меня и использовалась =) и никаких проблем у меня соответсвенно нет =)
Ошибка:
1046: Type was not found or was not a compile-time constant: MysqlService.
Абсолютно правомерна потому как:
MysqlService: This class is not in the current release,
I am planning to add it back in but I want to get all the primary stuff working good first.
Похоже драйвер был значительно переписан. Как им пользоваться в нынешнем состоянии, честно говоря до конца не представляю, максимум что мне удалось это подключиться к БД и произвести в нее запись. Все остальное для меня осталось загадкой, хотя опять же в доку особо не вчитывался.
Пример коннекта к базе:
<?xml version="1.0"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationComplete="init();">
<mx:Script>
<![CDATA[
import com.maclema.mysql.Connection;
private var mysqlConnection:Connection;
private function init ():void
{
mysqlConnection = new Connection( 'localhost', 3306, 'root', '', 'sample_assql');
mysqlConnection.connect();
}
]]>
</mx:Script>
</mx:Application>
В аутпут вывалилось:
[ServerInformation] Version: 5.0.27-community-nt
vooparker, спасибо за разъяснения.
было бы здорово увидеть ваш пример.
Если не разобрались
http://asql.mooska.pl/release/srcview/ ->download source (Zip, 28K)
Соответственно подключаете к проекту в source path
Рабочий код смотреть здесь http://mooska.pl/forum/viewtopic.php?p=4#4
вобщем-то там все на главной странице написано.
У этого драйвера есть недостаток, слушателя можно ставить только на экземпляр Asql(), т.е.
private var connector:Asql = new Asql();//creating instance of asql
connector.addEventListener(SQLEvent.SQL_DATA, handleData);
запрос посылать так
connector.query("select * from person");
а в assql это делается хз как (я не пользовался) вот такой фрагмент:
var dataRequest:MyDataRequest = myDBService.getButtonToolTip(buttonInfo);
dataRequest.addEventListener(SQLEvent.SQL_DATA, funk)
т.о можно в функции локальную переменную создать для запроса и привязать к ней слушателя.
в Asql же придется делать так:
var asqlConnForToolTip:Asql = new Asql();
asqlConnForToolTip.connect("localhost", "root", "***", "tsdb" , 3306);
asqlConnForToolTip.addEventListener(
SQLEvent.CONNECT, function (event:SQLEvent):void{
asqlConnForToolTip.query("SELECT * FROM pers, "+ b.pers_tab +" WHERE pers.id = "+ b.pers_tab +".pers_id");
}
);
что несколько длиннее.
Еще вылезает много предупреждений, но все нормально работает.
А почему, собственно, как с 2.0 не делать? Посылать xml-транзакции на скрипт, а уж он пусть и взаимодействует с sql.
это же совсем другая тема - всзаимодействие с СУБД. Теперь на AS можно написать интерфейс базы данных. Можно зафигарить какую-нибудь мощную офисную программулину (с присущими флексу библиотеками рисования графиков, к примеру (правда я ими еще не пользовался, но воспользуюсь же:)))
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.