Comunidad de diseño web y desarrollo en internet online

Pasar la conexión entre Flash y Access a AS3

Citar            
MensajeEscrito el 07 Dic 2010 07:20 pm
Hola a todos,
Estoy tratando de pasar el código AS2 de la conexión entre Flash y Access al código AS3. No sé si hay algo ya resuelto y me quitaría un gran problema, de momento llevo un par de días con ello y sigo...

Código ActionScript :

var databaseFile:String = "ejemplo_agenda.mdb";
var databasePassword:String = "";
   var path:String = mdm.Application.path+databaseFile;
   mdm.Database.MSAccess.connect(databaseFile,databasePassword);
      var success = mdm.Database.MSAccess.success();
      if (success == false) {
         var msg:String = "No se puede conectar a la bbdd";
         mdm.Dialogs.prompt(msg);
         return;
      }   
            
//FUNCION PARA HACER LA CONSULTA A LA BBDD
function consulta(){
   theDataGrid.removeAll();
   var sqlString:String = "SELECT id,nombre,apellidos,telefono FROM ejemplo_agenda order by id asc";
   // Ejecutamos la consulta sql
   mdm.Database.MSAccess.select(sqlString);
   // Comprobamos los errores
   var error:Boolean = (mdm.Database.MSAccess.error() == "true");
   if (error) {
      var msg:String = "Ha ocurrido un error en la consulta!";
      mdm.Dialogs.prompt(msg);
      return;
   }      
   //Obtenemos los datos de la consulta
   var dataSet:Array = mdm.Database.MSAccess.getData();
   
   var datos:Object;
   var newItemsArray:Array = new Array();
   for (var i = 0; i<dataSet.length; i++) {
      datos = {};
      datos.ID = parseInt(dataSet[i][0]);
      datos.Nombre = dataSet[i][1];
      datos.Apellidos = dataSet[i][2];
      datos.Telefono = dataSet[i][3];
      newItemsArray.push(datos);
   }   
   theDataGrid.dataProvider = newItemsArray;
}

//FUNCION PARA MONTAR EL DATAGRID
function layoutGUI():Void {
   // Montamos el encabezado del datagrid
   theDataGrid.setStyle("fontSize",10);
   theDataGrid.columnNames = ["ID", "Nombre", "Apellidos", "Telefono"];
   theDataGrid.vScrollPolicy = "auto";

   var gridWidth:Number = theDataGrid.width;

   theDataGrid.getColumnAt(0).width = 0.05*gridWidth;
   theDataGrid.getColumnAt(0).headerText = "ID:";

   theDataGrid.getColumnAt(1).width = 0.35*gridWidth;
   theDataGrid.getColumnAt(1).headerText = "Nombre:";

   theDataGrid.getColumnAt(2).width = 0.45*gridWidth;
   theDataGrid.getColumnAt(2).headerText = "Apellidos:";

   theDataGrid.getColumnAt(3).width = 0.15*gridWidth;
   theDataGrid.getColumnAt(3).headerText = "Telefono:";

   theDataGrid.setStyle("alternatingRowColors", [0xFFFFFF, 0xF9FCFD]);
}
   
//Funcion para insertar un dato
bot_insertar.onRelease=function(){
   if(nombre_txt.text==""){
      nombre_txt.text="Este campo no puede estar vacio";
   }else{
   mdm.Database.MSAccess.runQuery("INSERT INTO ejemplo_agenda (nombre,apellidos,telefono) VALUES ('"+nombre_txt.text+"','"+apellidos_txt.text+"',"+telf_txt.text+")");
   consulta();
   nombre_txt.text="";
   apellidos_txt.text="";
   telf_txt.text="";
   }
}   
//Borrado de datos
bot_borrar.onRelease=function(){
   LineaGrid = theDataGrid.selectedIndex;
   if(LineaGrid!=undefined){
      var sqlString:String = "DELETE FROM ejemplo_agenda where id="+theDataGrid.getItemAt(LineaGrid).ID;   
      mdm.Database.MSAccess.runQuery(sqlString);
      theDataGrid.removeItemAt(LineaGrid);   
      consulta();
   
   }

}   

//Edicion de datos
theDataGrid.addEventListener("change", editar);

function editar(Obj) {
   bot_editar.enabled=true;
   //Obtiene los datos de la linea seleccionada
   DatosGrid = Obj.target.selectedItem;
   //Asigna valores de los campos de texto
   nombre_txt.text = DatosGrid.Nombre;
   apellidos_txt.text = DatosGrid.Apellidos;
   telf_txt.text = DatosGrid.Telefono;

}
bot_editar.onRelease=function(){
      LineaGrid = theDataGrid.selectedIndex;
      var sqlString:String = "UPDATE ejemplo_agenda set nombre='"+nombre_txt.text+"', apellidos='"+apellidos_txt.text+"', telefono="+telf_txt.text+" where id="+theDataGrid.getItemAt(LineaGrid).ID;   
      mdm.Database.MSAccess.runQuery(sqlString);   

   consulta();   
   bot_editar.enabled=false;
   nombre_txt.text = "";
   apellidos_txt.text = "";
   telf_txt.text = "";   
   }
   
bot_editar.enabled=false;
layoutGUI();
consulta();//Obtenemos los datos de la bbdd

Por jalape

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Dic 2010 10:08 am
Es bastante código, pero mira que estás usando Zinc, seguramente en la documentación trae ejemplos para AS3 de como acceder a Access

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 Dic 2010 11:52 am
He conseguido algunas cosas pero sigue sin conectar con la BBDD de Access.
- Lo primero es copiar el archivo mdm.swc de MDM.Zinc.3.0 en las carpetas:
C:\Program Files (x86)\Adobe\Adobe Flash CS5\Common\Configuration\Components\User Interface
C:\Users\usuario\AppData\Local\Adobe\Flash CS5\es_ES\Configuration\Components

De esta forma se crea un componente mdm que arrastramos a la biblioteca de nuestro proyecto.
- A partir de aquí he intentado traducir los distintos elementos y códigos de AS2 a AS3 pero no termina de conectar.
El código:
import mdm.*;
import fl.data.DataProvider;

mdm.Application.init(this, onInit);

//PARA MONTAR EL DATAGRID
var newItemsArray:DataProvider = new DataProvider();
theDataGrid.columns = ["ID:","Nombre:","Apellidos:", "Telefono:"];
//theDataGrid.dataProvider = dpCarData;

var gridWidth:Number = theDataGrid.width;

theDataGrid.getColumnAt(0).width = 0.05*gridWidth;
theDataGrid.getColumnAt(0).headerText = "ID:";

theDataGrid.getColumnAt(1).width = 0.35*gridWidth;
theDataGrid.getColumnAt(1).headerText = "Nombre:";

theDataGrid.getColumnAt(2).width = 0.45*gridWidth;
theDataGrid.getColumnAt(2).headerText = "Apellidos:";

theDataGrid.getColumnAt(3).width = 0.15*gridWidth;
theDataGrid.getColumnAt(3).headerText = "Telefono:";

theDataGrid.setStyle("alternatingRowColors", [0xFFFFFF, 0xF9FCFD]);
//............................................

function onInit():void {
//Constructor
var databaseFile:String = "ejemplo_agenda.mdb";
var databasePassword:String = "";
var path:String = mdm.Application.path+databaseFile;
mdm.Database.MSAccess.connect(databaseFile,databasePassword);
var success = mdm.Database.MSAccess.success();
if (success == false) {
var msg:String = "No se puede conectar a la bbdd";
mdm.Dialogs.prompt(msg);
return;
}

consulta();

}

//FUNCION PARA HACER LA CONSULTA A LA BBDD
function consulta(){
theDataGrid.removeAll();
var sqlString:String = "SELECT id,nombre,apellidos,telefono FROM ejemplo_agenda order by id asc";
// Ejecutamos la consulta sql
mdm.Database.MSAccess.select(sqlString);
// Comprobamos los errores
var error:Boolean = (mdm.Database.MSAccess.error() == "true");
if (error) {
var msg:String = "Ha ocurrido un error en la consulta!";
mdm.Dialogs.prompt(msg);
return;
}

//Obtenemos los datos de la consulta
var dataSet:Array = mdm.Database.MSAccess.getData();

var datos:Object;
var newItemsArray = new Array();
for (var i = 0; i<dataSet.length; i++) {
datos = {};
datos.ID = parseInt(dataSet[i][0]);
datos.Nombre = dataSet[i][1];
datos.Apellidos = dataSet[i][2];
datos.Telefono = dataSet[i][3];
newItemsArray.push(datos);
}
theDataGrid.dataProvider = newItemsArray;
}
De momento he dejado solo la parte que corresponde a la visualización de la tabla para simplificar el código.

Por jalape

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 10 Dic 2010 11:36 pm
He conseguido conectar desde Zinc a la BBDD, y construir el encabezado de DataGrid, lo que no termino de conseguir es traducir el código de AS2 a AS3 de la consulta que devuelve los datos para que se muestren en el DataGrid.

El código en AS2 es:

//FUNCION PARA HACER LA CONSULTA A LA BBDD
function consulta(){
theDataGrid.removeAll();
var sqlString:String = "SELECT id,nombre,apellidos,telefono FROM ejemplo_agenda order by id asc";
// Ejecutamos la consulta sql
mdm.Database.MSAccess.select(sqlString);
// Comprobamos los errores
var error:Boolean = (mdm.Database.MSAccess.error() == "true");
if (error) {
var msg:String = "Ha ocurrido un error en la consulta!";
mdm.Dialogs.prompt(msg);
return;
}
//Obtenemos los datos de la consulta
var dataSet:Array = mdm.Database.MSAccess.getData();

var datos:Object;
var newItemsArray:Array = new Array();
for (var i = 0; i<dataSet.length; i++) {
datos = {};
datos.ID = parseInt(dataSet[i][0]);
datos.Nombre = dataSet[i][1];
datos.Apellidos = dataSet[i][2];
datos.Telefono = dataSet[i][3];
newItemsArray.push(datos);
}
theDataGrid.dataProvider = newItemsArray;
}

....................................................

Copíandolo tal cual me da el siguiente error en la última línea:
conversión implícita de un valor de tipo Array a un tipo fl.DataProvider no relacionado

Por jalape

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Sep 2011 06:30 pm

Código ActionScript :

import mdm.*;
mdm.Application.init(this);

var BaseFile:String = "agenda.mdb";
var BasePassword:String = "";
var path:String = mdm.Application.path + BaseFile;
var success:Boolean = mdm.Database.MSAccess.success();

mdm.Database.MSAccess.connect(BaseFile, BasePassword);

if (! success)
{
   mdm.Dialogs.prompt("ERROR");
   return;
}

cargar.addEventListener(MouseEvent.CLICK, cargando);

function cargando(event:MouseEvent):void
{
   mdm.Database.MSAccess.select("SELECT * FROM Usuarios_Agenda");
   var myDP:Array = new Array();
   var D:Array = mdm.Database.MSAccess.getData();
   for (var L in D)
   {
      myDP.addItem({id:D[L][0], Nombre:D[L][1], Apellidos:D[L][2], Email:D[L][3], Telefono:D[L][4]});
   }
   
}


estoy trabajando en este codigo.. la conexion la hace satisfactoriamente pero aun no se como pasarlo a el datagrid... en AS2 usaba un Dataset y agregaba el codigo:

Código ActionScript :

_parent.DataSet.Usuarios_Agenda = myDP;
   _parent.DataGrid.dataProvider = _parent.DataSet.Usuarios_Agenda;


Espero encontrar esa forma de hacerlo... ojala te sirva el de cargar mientrastanto

Por Sigmax

Claber

136 de clabLevel

1 tutorial

 

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.