Tema: Assql
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/04/2009, 05:11
Avatar de avielo
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.