Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Flash y Actionscript (http://www.forosdelweb.com/f16/)
-   -   mdmzinc-flex y access (http://www.forosdelweb.com/f16/mdmzinc-flex-access-476459/)

NUCKLEAR 27/03/2007 07:34

mdmzinc-flex y access
 
Q tal tengo un prolema el cual estube toda la noche dandole vueltas, o soy muy bruto o es que a las 3am no razono. necesito mostrar los datos de una db access en flex-zinc esta todo ok me conecta correctamente a la bd el tema es que no se como mostrar los datos en un txt aca el codigo:
estoy seguro que el error esta en el campo de texto, alguna aiuda que me quede sin neuronas ya!:neurotico

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">
<mx:Script>
<![CDATA[
import mdm.*;
private function initApp():void {
mdm.Application.init(this);
}
function mensaje(){
mdm.Dialogs.Prompt("funciona!");
}
function coneccion(){
mdm.Database.MSAccess.connect("alumnos.mdb", "password");
mdm.Database.MSAccess.select("SELECT * FROM datos");
carga = mdm.Database.MSAccess.getXML();
mdm.Dialogs.Prompt("funcion concretada");


}
]]>
</mx:Script>
<mx:Button x="216" y="54" label="conectar" click="coneccion()"/>
<mx:TextArea x="30" y="85" width="414" height="249" id="carga" />
<mx:Button x="44" y="43" label="mensaje" click="mensaje()"/>

</mx:Application>

TMeister 27/03/2007 11:04

Re: mdmzinc-flex y access
 
ummm

carga.text = mdm.Database.MSAccess.getXML();

adanqfb 27/03/2007 18:49

Re: mdmzinc-flex y access
 
Hola. Pues yo estoy peor, a mi no me corre ni el ejemplo de hola mundo. No marca error, pero no hace nada :'(

adanqfb 27/03/2007 19:34

Re: mdmzinc-flex y access
 
Hola, encontré esto en los foros de Zinc, creo que es la causa de tu problema:


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="NO PUEDO PONER LIGAS :(" layout="absolute" creationComplete="initApp();populateCombo();">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.*;
import mdm.Application;
import mdm.Database;
import mdm.Dialogs;

//filename of the database
private var database:String = 'users.mdb';

//Combobox Data Provider
[Bindable]
public var users:ArrayCollection = new ArrayCollection(); // = new

private function initApp():void{
mdm.Application.init(this);
}

//this is a must function to map local files
public static function getPath(aPath:String):String{
if(mdm.Application.path == ""){
return aPath;
}
// else in zinc
aPath = mdm.Application.path+aPath;
// quick fix for paths/separators
aPath = aPath.split("/").join("\\");
aPath = aPath.split("\\\\").join("\\");
return aPath;
}


// Access database connection
private function connectDB():void{
mdm.Database.MSAccess.connectAbs(getPath(database) );
}


//getXML does not work in flex yet
private function selectUsers():void{
mdm.Database.MSAccess.select('SELECT * FROM users');
}


//Populates combobox
private function populateCombo():void{

connectDB();
selectUsers();
if( mdm.Database.MSAccess.getData().length > 0){
var dataSet:Array = mdm.Database.MSAccess.getData();
var i: int;
// Assemble Data (the Database has ID|Login|Password|FirstName|LastName Fields)
for (i=0; i < dataSet.length; i++){
var item: Object = new Object();
item["label"] = dataSet[i][3] + dataSet[i][4];
item["data"] = dataSet[i][0];
users.addItem(item);
}

mycombobox.dataProvider = users;
}
}

]]>
</mx:Script>

<mx:ComboBox x="10" y="10" id="mycombobox"/>

</mx:Application>


Como en el ejemplo lo explica, la instrucción getXML() no sirve con Flex, sino que hay que usar getData(), espero te funcione....y de paso si me pueden decir como le hago para correr código Zinc en Flex, porque de plano ya hice todo lo que me dicen en los manuales y no puedo :(. Saludos.

NUCKLEAR 27/03/2007 23:08

Re: mdmzinc-flex y access
 
gracias por la data man, por lo que se hay que poner el codigo zinc llamando a la funcion que tengo en mi ejemplo creationComplete="initApp()"

luego compilar en flex. obviamente que antes haber dado las ruta a library path, para que no genere errores. este swf compilado en flex abrirlo en mdmzinc y darle en build y este es el que genera el codigo introducido en flex.

si algo hay con getXML mmm de lleno no te dice casi nada los tutoriales, y el foro esta to en inglish a aprender ingles no queda otra :)

NUCKLEAR 28/03/2007 08:59

Re: mdmzinc-flex y access
 
Cita:

Iniciado por TMeister (Mensaje 1945899)
ummm

carga.text = mdm.Database.MSAccess.getXML();

ya probe de todas las formas, .... pero no me rendire!!! :stress:

NUCKLEAR 28/03/2007 09:10

Re: mdmzinc-flex y access
 
Cita:

Iniciado por adanqfb (Mensaje 1946612)
Hola, encontré esto en los foros de Zinc, creo que es la causa de tu problema:


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="NO PUEDO PONER LIGAS :(" layout="absolute" creationComplete="initApp();populateCombo();">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.*;
import mdm.Application;
import mdm.Database;
import mdm.Dialogs;

//filename of the database
private var database:String = 'users.mdb';

//Combobox Data Provider
[Bindable]
public var users:ArrayCollection = new ArrayCollection(); // = new

private function initApp():void{
mdm.Application.init(this);
}

//this is a must function to map local files
public static function getPath(aPath:String):String{
if(mdm.Application.path == ""){
return aPath;
}
// else in zinc
aPath = mdm.Application.path+aPath;
// quick fix for paths/separators
aPath = aPath.split("/").join("\\");
aPath = aPath.split("\\\\").join("\\");
return aPath;
}


// Access database connection
private function connectDB():void{
mdm.Database.MSAccess.connectAbs(getPath(database) );
}


//getXML does not work in flex yet
private function selectUsers():void{
mdm.Database.MSAccess.select('SELECT * FROM users');
}


//Populates combobox
private function populateCombo():void{

connectDB();
selectUsers();
if( mdm.Database.MSAccess.getData().length > 0){
var dataSet:Array = mdm.Database.MSAccess.getData();
var i: int;
// Assemble Data (the Database has ID|Login|Password|FirstName|LastName Fields)
for (i=0; i < dataSet.length; i++){
var item: Object = new Object();
item["label"] = dataSet[i][3] + dataSet[i][4];
item["data"] = dataSet[i][0];
users.addItem(item);
}

mycombobox.dataProvider = users;
}
}

]]>
</mx:Script>

<mx:ComboBox x="10" y="10" id="mycombobox"/>

</mx:Application>


Como en el ejemplo lo explica, la instrucción getXML() no sirve con Flex, sino que hay que usar getData(), espero te funcione....y de paso si me pueden decir como le hago para correr código Zinc en Flex, porque de plano ya hice todo lo que me dicen en los manuales y no puedo :(. Saludos.

la instr. getData() devuelve un array bidimensional que luego puede ser usado indicando la posicion, pero tampoco me funciona solo me funciona getRecordCount(); que me muestra la cantidad de registros corectamente en el campo de texto....
Estoy un paso de la neurosis!

jahepi 28/03/2007 11:38

Re: mdmzinc-flex y access
 
Hola NUCKLEAR!

Usa el depurador de Flex Builder + Break points :arriba:, para que veas el estado de alguna variable en particular y veas muy detalladamente lo que contiene.

Un saludo! :adios:

NUCKLEAR 28/03/2007 18:32

Re: mdmzinc-flex y access
 
ok voy a hacerlo gracias .
por lo pronto puedo visualizar el contenido mediante un while con getData(), ahora voy a darle formato para que me lo muestre como un xml.


La zona horaria es GMT -6. Ahora son las 08:17.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.