Comunidad de diseño web y desarrollo en internet online

Problemas con el MDM Zinc

Citar            
MensajeEscrito el 23 Abr 2008 03:13 am
Hola chicos

bien...intente hacer una base de datos como la que se explica en el tutorial "Conectando Flash con Access atravez de MDM Zinc" pero me sale un error muy peculiar y queria que me ayudaran a corregirlo.

el error dice lo siguiente


por si no se ve bien la imagen
http://img87.imageshack.us/img87/1442/error1um8.gif

hice algunas modificaciones al codigo original que se pone en el tutorial, para poner lo que necesito, ya que yo solo necesito que se muestre la base de datos.

bien aqui esta el codigo que usé:

Código :

var databaseFile:String = "instrucciones.mdb";
var databasePassword:String = "lobito";
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 base de datos";
  mdm.Dialogs.prompt(msg);
  return;
}
function consulta(){
    eldatagrid.removeAll();
    var sqlString:String = "SELECT Id,Instruccion,Operacion,Descripcion,Direccionamiento,Ciclos,S,X,H, FROM instrucciones 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.Instruccion = dataSet[i][1];
        datos.Operacion = dataSet[i][2];
        datos.Descripcion = dataSet[i][3];
      datos.Direccionamiento = dataSet[i][4];
      datos.Ciclos = dataSet[i][5];
      datos.S = dataSet[i][6];
      datos.X = dataSet[i][7];
      datos.H = dataSet[i][8];
      datos.I = dataSet[i][9];
      datos.N = dataSet[i][10];
      datos.Z = dataSet[i][11];
      datos.V = dataSet[i][12];
      datos.C = dataSet[i][13];
        newItemsArray.push(datos);
    }
    eldatagrid.dataProvider = newItemsArray;
}
function layoutGUI():Void {
    // Montamos el encabezado del datagrid
    theDataGrid.setStyle("fontSize",10);
    theDataGrid.columnNames = ["ID", "Instruccion", "Operacion", "Descripcion", "Direccionamiento", "Ciclos", "S", "H", "X", "I", "N", "Z", "V", "C"];
    theDataGrid.vScrollPolicy = "auto";

    var gridWidth:Number = eldatagrid.width;

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

    eldatagrid.getColumnAt(1).width = 0.25*gridWidth;
    eldatagrid.getColumnAt(1).headerText = "Instruccion:";

    eldatagrid.getColumnAt(2).width = 0.30*gridWidth;
    eldatagrid.getColumnAt(2).headerText = "Operacion:";

    eldatagrid.getColumnAt(3).width = 0.40*gridWidth;
    eldatagrid.getColumnAt(3).headerText = "Descripcion:";
   
   eldatagrid.getColumnAt(4).width = 0.40*gridWidth;
    eldatagrid.getColumnAt(4).headerText = "Descripcion:";
   
   eldatagrid.getColumnAt(5).width = 0.27*gridWidth;
    eldatagrid.getColumnAt(5).headerText = "Direccionamiento:";
   
   eldatagrid.getColumnAt(6).width = 0.05*gridWidth;
    eldatagrid.getColumnAt(6).headerText = "Ciclos:";
   
   eldatagrid.getColumnAt(7).width = 0.05*gridWidth;
    eldatagrid.getColumnAt(7).headerText = "S:";
   
   eldatagrid.getColumnAt(8).width = 0.05*gridWidth;
    eldatagrid.getColumnAt(8).headerText = "X:";
   
   eldatagrid.getColumnAt(9).width = 0.05*gridWidth;
    eldatagrid.getColumnAt(9).headerText = "H:";
   
   eldatagrid.getColumnAt(10).width = 0.05*gridWidth;
    eldatagrid.getColumnAt(10).headerText = "I:";
   
   eldatagrid.getColumnAt(11).width = 0.05*gridWidth;
    eldatagrid.getColumnAt(11).headerText = "N:";
   
   eldatagrid.getColumnAt(12).width = 0.05*gridWidth;
    eldatagrid.getColumnAt(12).headerText = "Z:";
   
   eldatagrid.getColumnAt(13).width = 0.05*gridWidth;
    eldatagrid.getColumnAt(13).headerText = "V:";
   
   eldatagrid.getColumnAt(14).width = 0.05*gridWidth;
    eldatagrid.getColumnAt(14).headerText = "C:";

    eldatagrid.setStyle("alternatingRowColors", [0xFFFFFF, 0xF9FCFD]);
}
layoutGUI();
consulta();


plz...ayuda ^^

Por loboblanco

74 de clabLevel



 

msie
Citar            
MensajeEscrito el 23 Abr 2008 07:15 am
El problema está en el select, revisa que todos los campos estén bien, entrecomilla los campos así como el nombre de la tabla.
Y también he visto que te sobra una coma despues de la "H":

Código :

    var sqlString:String = "SELECT Id,Instruccion,Operacion,Descripcion,Direccionamiento,Ciclos,S,X,H, FROM instrucciones order by Id asc";

Por One

Claber

1488 de clabLevel

5 tutoriales

Genero:Masculino  

Programador Web

firefox
Citar            
MensajeEscrito el 23 Abr 2008 03:12 pm
Hola mi estimado One

bien, cheque el codigo y efectivamente hacian falta un par de columnas en la funcion SELECT, las agregue y ademas hice otro cambio que a lo mejor era crucial tambien jejeje

aqui la correccion del SELECT y ademas le cambie tambien en la parte que dice FROM, por que ahi tenia puesto el normbre del archivo de la BD, se lo cambien por el nombre de la tabla

Código :

function consulta(){
    eldatagrid.removeAll();
    var sqlString:String = "SELECT Id,Instruccion,Operacion,Descripcion,Direccionamiento,Ciclos,S,X,H,I,N,Z,V,C FROM instruccion order by Id asc";


bien te dire que si funciono de esta manera....solo que hay un pequeño problema, ya que si se ven los datos y todo pro salen en orden invertido (columnas de atras pa delante) y no se respeta el ancho de las columnas.

para que te des una mejor idea te mando la imagen de como se ve


alguna idea para corregir esto?

Por loboblanco

74 de clabLevel



 

msie
Citar            
MensajeEscrito el 23 Abr 2008 05:37 pm
Revisa el codigo.A simple vista veo esto:

En un sitio cuentas 14 en otro 15...

Código :


Aqui cuento de 0 a 13

        datos.ID = parseInt(dataSet[i][0]);
        datos.Instruccion = dataSet[i][1];
        datos.Operacion = dataSet[i][2];
        datos.Descripcion = dataSet[i][3];
      datos.Direccionamiento = dataSet[i][4];
      datos.Ciclos = dataSet[i][5];
      datos.S = dataSet[i][6];
      datos.X = dataSet[i][7];
      datos.H = dataSet[i][8];
      datos.I = dataSet[i][9];
      datos.N = dataSet[i][10];
      datos.Z = dataSet[i][11];
      datos.V = dataSet[i][12];
      datos.C = dataSet[i][13];

......
Y aquí de 0 a 14:

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

    eldatagrid.getColumnAt(1).width = 0.25*gridWidth;
    eldatagrid.getColumnAt(1).headerText = "Instruccion:";

    eldatagrid.getColumnAt(2).width = 0.30*gridWidth;
    eldatagrid.getColumnAt(2).headerText = "Operacion:";

    eldatagrid.getColumnAt(3).width = 0.40*gridWidth;
    eldatagrid.getColumnAt(3).headerText = "Descripcion:";
   
   eldatagrid.getColumnAt(4).width = 0.40*gridWidth;
    eldatagrid.getColumnAt(4).headerText = "Descripcion:";
   
   eldatagrid.getColumnAt(5).width = 0.27*gridWidth;
    eldatagrid.getColumnAt(5).headerText = "Direccionamiento:";
   
   eldatagrid.getColumnAt(6).width = 0.05*gridWidth;
    eldatagrid.getColumnAt(6).headerText = "Ciclos:";
   
   eldatagrid.getColumnAt(7).width = 0.05*gridWidth;
    eldatagrid.getColumnAt(7).headerText = "S:";
   
   eldatagrid.getColumnAt(8).width = 0.05*gridWidth;
    eldatagrid.getColumnAt(8).headerText = "X:";
   
   eldatagrid.getColumnAt(9).width = 0.05*gridWidth;
    eldatagrid.getColumnAt(9).headerText = "H:";
   
   eldatagrid.getColumnAt(10).width = 0.05*gridWidth;
    eldatagrid.getColumnAt(10).headerText = "I:";
   
   eldatagrid.getColumnAt(11).width = 0.05*gridWidth;
    eldatagrid.getColumnAt(11).headerText = "N:";
   
   eldatagrid.getColumnAt(12).width = 0.05*gridWidth;
    eldatagrid.getColumnAt(12).headerText = "Z:";
   
   eldatagrid.getColumnAt(13).width = 0.05*gridWidth;
    eldatagrid.getColumnAt(13).headerText = "V:";
   
   eldatagrid.getColumnAt(14).width = 0.05*gridWidth;
    eldatagrid.getColumnAt(14).headerText = "C:";

Por One

Claber

1488 de clabLevel

5 tutoriales

Genero:Masculino  

Programador Web

firefox
Citar            
MensajeEscrito el 24 Abr 2008 03:21 pm
Hola mi estimado One

bien....revise l codigo como dijiste, corregí los errores que cheque, pero aun asi....se sigue viendo al reves.

sin embargo te dire que anduve investigando algunos manuales sobre el MDM Zinc (en Ingles) y descubri una mejor forma de mostrar los datos, efectiva y agradable al usuario, que a la vez me genera otro pequeño problema, que es menor pero que si pudieras me gustaria que me ayudaras jejeje.

el flash consta de unos botones y algunos campos de texto dinamicos, el chiste es que cuando oprimes un boton, la informacion de la base de datos es volcada dentro de los campos de texto.

el codigo es el siguiente:

esto va en el primer frame

Código :

mdm.Database.MSAccess.connect("instrucciones.mdb", "lobito");
mdm.Database.MSAccess.select("SELECT Id,Instruccion,Operacion,Clasificacion,Descripcion,Direccionamiento,Ciclos,Codigo,S,X,H,I,N,Z,V,C FROM instruccion");


esto va en cada boton, claro que varian los numero dependiendo de la informacion que se quiera meter al oprimir cada boton

Código :

on (release) {
               ins = mdm.Database.MSAccess.getField(1, 1);
            ope = mdm.Database.MSAccess.getField(1, 2);
            cla = mdm.Database.MSAccess.getField(1, 3);
            des = mdm.Database.MSAccess.getField(1, 4);
            dir = mdm.Database.MSAccess.getField(1, 5);
            cic = mdm.Database.MSAccess.getField(1, 6);
            cod = mdm.Database.MSAccess.getField(1, 7);
            S = mdm.Database.MSAccess.getField(1, 8);
            X = mdm.Database.MSAccess.getField(1, 9);
            H = mdm.Database.MSAccess.getField(1, 10);
            I = mdm.Database.MSAccess.getField(1, 11);
            N = mdm.Database.MSAccess.getField(1, 12);
            Z = mdm.Database.MSAccess.getField(1, 13);
            V = mdm.Database.MSAccess.getField(1, 14);
            C = mdm.Database.MSAccess.getField(1, 15);
            
       }


y por ultimo a cada texto dinamico de le coloca el nombre en la seccion "var" dependiendo que informacion va a contener

bien el unico detalle es que en uno de los texto dinamicos, la info colocada es algo extensa (dato tipo memo), y aunque le puse "multilinea" no se visualiza mas que una linea y hay que correrla, lo que quiera es que se vea todo de una vez......si tienes alguna idea...pasamela ^^ de todas maneras sigo investigando, por ejemplo se me ocurre que en vez de memo, maneje un objeto OLE, pero no se muy bien todavia como pero sigo investigando....y gracias por la ayuda.

Por loboblanco

74 de clabLevel



 

msie
Citar            
MensajeEscrito el 24 Abr 2008 03:34 pm
Holas ^^

bien...se que casi acabo de postear el otro mensaje jejeje pero lo que paso es que ya arregle el problema, se me ocurrio que al texto dinamico, lo ampliara con "enter" osea agregar mas renglones en blanco y al publicarlo y compilarlo con el mdm...la informacion se acomoda en esos renglones, en fin, cuando termine lo posteo para que veas como quedo.

Por loboblanco

74 de clabLevel



 

msie
Citar            
MensajeEscrito el 16 Dic 2008 08:21 pm
Hola,oye una preguntota,mira,yo estoy haciendo un ejecutable para manejar una cafeteria,quiero obtener los datos de los productos como su precio de una bd de acces, lo que quiero hacer es que dependiendo del numero de productos dentro de la base de datos me cree tantos botones, y a cada boton con un texto dinamico y tal ves con un loader pueda insertar el nombre de cada producto y su imagen correspondiente,jeje,estoy medio loco pero espero se pueda lograr y me puedas ayudar!!!,gracias,un saludo desde México,DF

Por Diegop88

3 de clabLevel



 

msie7
Citar            
MensajeEscrito el 16 Dic 2008 09:12 pm
Claro que si, mándame tus .fla que ahora en navidades te lo hago.

Por One

Claber

1488 de clabLevel

5 tutoriales

Genero:Masculino  

Programador Web

chrome

 

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