Comunidad de diseño web y desarrollo en internet online

Problemas para hacer un For en una consulta Sqlite en Air - As3

Citar            
MensajeEscrito el 02 Ene 2014 11:39 pm
Hola de nuevo. Feliz ano 2014 espero todos se encuentren muy bien.

El tema es el siguiente. Estoy haciendo una consulta en sqlite y el problema es que se ejecuta la consulta pero solo me arroja el ultimo registro del array y no me guarda la consulta completa o si lo hace no se como recuperarla... en fin aqui va el codigo, espero su valiosa ayuda, gracias.

El array contiene los siguientes datos: [1, 2, 3, 4, 8, 10, 11]


Código :

...
var selectStmtBB:SQLStatement = new SQLStatement();
selectStmtBB.sqlConnection = conn;
conn.begin();

for(var iB:int = 0; iB < newArray.length; iB++){
selectStmtBB.text = "SELECT * FROM Contenido WHERE Id=@ID";
selectStmtBB.parameters["@ID"] = newArray[iB];
selectStmtBB.execute();}

conn.commit();
var resultB:SQLResult = selectStmtBB.getResult();
var numResultsBB:int = resultB.data != null ? resultB.data.length : 0;
for(var iA:int = 0; iA < numResultsBB; iA++){…. etc

:(



No arroja ningun error solo lo que les comento el ultimo registro del array quiere decir 11

Por Javier Mauricio Vanegas R

4 de clabLevel



 

Diseñador grafico

chrome
Citar            
MensajeEscrito el 03 Ene 2014 03:11 am
Bueno no se si esto sea lo mas practico pero lo solucione de la siguiente manera:

var selectStmtBB:SQLStatement = new SQLStatement();
selectStmtBB.sqlConnection = conn;
conn.begin();
selectStmtBB.text = "SELECT * FROM Contenido WHERE Id="
for(var iB:int = 0; iB < newArray.length; iB++){


if(iB==0){
selectStmtBB.text += +newArray[iB]+" "
}else{
selectStmtBB.text += " OR Id="+newArray[iB]
}

}
selectStmtBB.execute();
conn.commit();

var resultB:SQLResult = selectStmtBB.getResult();
var numResultsBB:int = resultB.data != null ? resultB.data.length : 0;


//---cierra ordenar array
for(var iA:int = 0; iA < numResultsBB; iA++){...


Si hay algo para mejor esto super!!!!

Por Javier Mauricio Vanegas R

4 de clabLevel



 

Diseñador grafico

chrome
Citar            
MensajeEscrito el 04 Ene 2014 12:11 am
Hola,
en el primer código que has puesto sólo te arroja el último valor porque al ejecutar la sentencia selectStmtBB.execute() en cada bucle for se sobreescribe el anterior resultado.
Para solucionarlo borra ese bucle for entero y pon estas 2 líneas:

Código ActionScript :

selectStmtBB.text = "SELECT * FROM Contenido WHERE Id in (" + newArray.join(",") + ")";
selectStmtBB.execute();

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 04 Ene 2014 06:11 pm
isidoro,

Muchas gracias por la ayuda. Efectivamente funciona. :)

Por Javier Mauricio Vanegas R

4 de clabLevel



 

Diseñador grafico

chrome

 

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