Leemos los registros de una db mysql mediante un script asp al que le pasamos una cadeena con la orden sql, y nos devuelve un xml con el resultado.
En este ejemplo añadí un datagrid al escenario, que llamé dg y que se encarga de recibir los datos.Se llama por ejemplo así:
var datosdb:leeDb = new leeDb();
datosdb.carga_datos ("select * from usuarios");
Archivos: leeDb.as, leeDb.asp
leeDb.as
package codigo{
import flash.display.*;
import flash.events.*;
import flash.net.*;
import fl.controls.DataGrid;
import fl.controls.dataGridClasses.DataGridColumn;
import fl.data.DataProvider;
// clase
public class leeDb extends Sprite {
public var dg:DataGrid;
// constructor
public function leeDb ():void {
trace ("constructor");
}
public function carga_datos (sql:String):void {
// sql a URLVariables
var urlVariables:URLVariables=new URLVariables;
urlVariables.sql=sql;
// definimos valores de llamada
var urlRequest:URLRequest=new URLRequest;
urlRequest.method=URLRequestMethod.POST;
urlRequest.url="http://localhost/webprueba/codigo/leeDb.asp";
urlRequest.data=urlVariables;
// creo loader y evento
var urlLoader:URLLoader=new URLLoader;
urlLoader.addEventListener (Event.COMPLETE,cargaCompleta);
// leemos
urlLoader.load (urlRequest);
}
// _______________funciones___________________________________
private function cargaCompleta (evento:Event):void {
var myxml:XML = new XML(evento.target.data);
var totalRegistros:int = myxml.child("*").length();
var totalCampos:int = myxml.child(0).child("*").length();
var dp:DataProvider = new DataProvider(myxml);
// ponemos columnas
var columna:DataGridColumn = new DataGridColumn ();
for each (var item:XML in myxml.child(0).elements()) {
columna = dg.addColumn(new DataGridColumn(item.name().toString()));
columna.width = 300 / totalCampos ;
}
dg.move (0,200);
dg.width = 300;
dg.rowCount = totalRegistros;
dg.dataProvider = dp;
}
}
}
leeDb.asp
<% 'declaramos las variables
dim dbConexion,sql, rs, x, y, tabla
'cadena conexión a db
dbConexion = "Driver={mySQL ODBC 3.51 Driver};Server=localhost;Port=;Option=4;Database=prueba;Uid=;Pwd=;"
'cargamos variable sql
sql = Request.Form("sql")
'leemos datos a tabla
Set rs = Server.CreateObject ("ADODB.RecordSet")
rs.Open sql, dbConexion
tabla = rs.GetRows
'Cabecera del archivo xml
response.ContentType="text/xml"
Response.Write "<?xml version='1.0' encoding='UTF-8'?>"
Response.Write "<regs>"
for x = 0 to UBound(tabla,2)
Response.Write "<reg>"
for y = 0 to UBound(tabla,1)
Response.Write "<" & rs.Fields(y).Name & ">"
Response.Write tabla (y,x)
Response.Write "</" & rs.Fields(y).Name & ">"
next
Response.Write("</reg>")
next
Response.Write("</regs>")
rs.Close
Set rs = Nothing
%>