Foros del Web » Creando para Internet » Flash y Actionscript »

Assql

Estas en el tema de Assql en el foro de Flash y Actionscript en Foros del Web. hola wenas, estoy intentando conectar a mysql con assql, pero no me va, mi pregunta es para ver si alguien ha usado esta libreria alguna ...
  #1 (permalink)  
Antiguo 01/04/2009, 05:41
Avatar de avielo  
Fecha de Ingreso: junio-2008
Ubicación: Córdoba (España)
Mensajes: 111
Antigüedad: 16 años, 5 meses
Puntos: 2
Assql

hola wenas, estoy intentando conectar a mysql con assql, pero no me va, mi pregunta es para ver si alguien ha usado esta libreria alguna vez y sabe orientarme, dejo el codigo.

Código:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:assql="com.maclema.mysql.mxml.*"
	creationComplete="handleConnected(event)" layout="absolute">
	
	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import com.maclema.mysql.events.MySqlErrorEvent;
			import com.maclema.util.ResultsUtil;
	
			private function handleConnected(e:Event):void {
				service.send("SELECT * FROM menu");
			}
			
			private function handleError(e:MySqlErrorEvent):void {
				Alert.show(e.text);
			}
		]]>
	</mx:Script>
	
	<assql:MySqlService id="service" hostname="localhost" username="root"
		password="root" database="avielo" autoConnect="true" 
		connect="handleConnected(event)" sqlError="handleError(event)" />
	
	<mx:DataGrid id="grid" left="10" right="10" top="10" bottom="10"
		dataProvider="{service.lastResult}" />
		
</mx:Application>
PD: uso la libreria asSQL-Beta2.7.swc y el error que me da es:

Error: El archivo SWF de http://localhost/prueba2-debug/assql.swf no puede establecer una conexión con un socket de su propio dominio sin que haya un archivo de política. Consulte http://www.adobe.com/go/strict_policy_files_es para resolver este problema.

*** Violación de la seguridad Sandbox ***
Se ha detenido la conexión con localhost:3306 - no se permite desde http://localhost/prueba2-debug/assql.swf
  #2 (permalink)  
Antiguo 15/04/2009, 05:11
Avatar de avielo  
Fecha de Ingreso: junio-2008
Ubicación: Córdoba (España)
Mensajes: 111
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Assql

Solucionado:

Código:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication 
        xmlns:mx="http://www.adobe.com/2006/mxml" 
        xmlns:assql="com.maclema.mysql.mxml.*" 
        layout="absolute" 
        creationComplete="onCreationComplete()">
        
        <mx:Script>
        <![CDATA[
                import mx.controls.Alert;
                import mx.rpc.AsyncResponder;
                import mx.collections.ArrayCollection;
                import com.maclema.mysql.ResultSet;
                import com.maclema.util.ResultsUtil;
                import com.maclema.mysql.events.MySqlEvent;
                import com.maclema.mysql.MySqlToken;
                import com.maclema.mysql.Statement;
                import com.maclema.mysql.Connection;
                
                private var con:Connection;
                
                        private function onCreationComplete():void {
                                con = new Connection("localhost", 3306, "root", "root", "jwc");
                                con.addEventListener(Event.CONNECT, handleConnected);
                                con.connect();  
                        }
                        
                        private function handleConnected(e:Event):void {
                                var st:Statement = con.createStatement();
                                
                                //turn on results streaming
                                st.streamResults = true;
                                
                                //dispatch new rows event every 500 new rows
                                st.streamingInterval = 50;
                                
                                //execute a query
                                var token:MySqlToken = st.executeQuery("SELECT * FROM productos");
                                
                                //listen for our result set columns
                                token.addEventListener(MySqlEvent.COLUMNDATA, function(e:MySqlEvent):void {
                                        grid.columns = ResultsUtil.getDataGridColumns( e.resultSet );
                                        grid.dataProvider = new ArrayCollection();
                                });
                                
                                //listen for new rows
                                token.addEventListener(MySqlEvent.ROWDATA, function(e:MySqlEvent):void {
                                        addNewRows(e.resultSet);
                                });                             
                                
                                //add a responder
                                token.addResponder(new AsyncResponder(
                                        function(data:Object, token:Object):void {
                                                //call add new rows again to ensure we have all the rows
                                                addNewRows(ResultSet(data));
                                        },
                                        function(info:Object, token:Object):void {
                                                Alert.show("Error: " + info);
                                        },
                                        token
                                ));
                        }
                        
                        private function insertar(e:Event):void {
                                var st:Statement = con.createStatement();
                                st.executeQuery("INSERT INTO `productos` (`Nombre`,`Descripcion`,`Precio`,`IdCategorias`,`imagen`,`idSubcategoria`,`grabado`) VALUES ('x','x','1','1','x','1','0')");
                        		handleConnected(e);
                        }
                        
                        private function addNewRows(rs:ResultSet):void {
                                //get our data provider
                                var dp:ArrayCollection = grid.dataProvider as ArrayCollection;
                                
                                //get the collection of new rows
                                var newRows:ArrayCollection = rs.getRows(false, dp.length, (rs.size()-dp.length));
                                
                                //concat our current source, and our new rows source
                                dp.source = dp.source.concat( newRows.source );
                                
                                //refresh our data provider
                                dp.refresh();
                        }
                ]]>
        </mx:Script>
        
        <mx:DataGrid id="grid" left="10" right="10" top="50" bottom="10" />
       	<mx:Button label="Insertar" click="{insertar(event)}" left="10" top="20"/>    
</mx:WindowedApplication>
la libreria necesaria la podeis descargar de aqui yo uso la 2.7, espero os sirva de ayuda lo lo he encontrado bastante util ya que nos permite conectar a una base de datos mysql sin necesidad de php.
  #3 (permalink)  
Antiguo 20/04/2009, 17:06
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 11 meses
Puntos: 43
Respuesta: Assql

Hola Avielo !

Buen recurso, nada mas se te paso comentar que es para proyectos del tipo Air.

Un saludote !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
  #4 (permalink)  
Antiguo 05/05/2009, 02:12
Avatar de avielo  
Fecha de Ingreso: junio-2008
Ubicación: Córdoba (España)
Mensajes: 111
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Assql

Supuestamente el problema que da cuando intentas conectar desde Flex es un problema de permisos que se podría solucionar según lo explicado en este enlace.

ht tp : / / w w w.adobe.com/devnet/flashplayer/articles/socket_policy_files.html

Pero digo supuestamente por que todavía estoy liado con ello. si se pudiera solucionar la verdad es que seria una gran ayuda a la hora de conectar con bases de datos.

Un saludo
__________________
http://www.avielomarketing.com
  #5 (permalink)  
Antiguo 07/05/2009, 06:00
 
Fecha de Ingreso: marzo-2008
Mensajes: 25
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Assql

Hola

Yo pase tambien por el AsSQL y desistí.

La idea es muy bonita, pero no hay manera de hacerlo funcionar. No donde ahora mismo, el caso es que leí que la implementación en AS, que es lo que te da AsSQL, esta hecha y funciona, el tema es que para comunicarlo con el servidor hay que hacer un modulo de comunicacion digno de Google (..).

en fin, decidí dejarlo y ahora utilizo Zend_Framework, que es muy sencillo de usar y incluso tienes ejemplos en Adobe.com

un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:54.