Comunidad de diseño web y desarrollo en internet online

Hacer un un update de un registro en una tabla

Citar            
MensajeEscrito el 22 May 2011 09:54 am
Hola buenas

En mi proyecto tengo que hacer un update de un registro pero no se como hacerlo porque cuando lo hago y llamo a un select para ver el resultado no me muestra nada, es como si no ejecutara la sentecia... pero la sentencia SQL esta bien ya que lo he probado en un gestor Sqlite.
Por otra parte los inserts y los updates que hago por codigo no se reflejan en la BD... eso xq es?
solo se queda en memoria pero no se aplica en la base de datos!?

Por sergichu

19 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 May 2011 12:38 pm
"Se queda en memoria" para una sentencia SQL es lo mismo que decir que no funciona. Aparentemente ninguna sentencia te funciona, deberías verificar que tienes conexión con la BD

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 May 2011 03:12 pm
E cambiado de opción, voy a hacer un insert en otra tabla con valore de un args[], pero no me hace el insert
Este es el codigo:
if ( args[0] is DatabaseResponder && args[1] )
{
var sqlWrapper:SQLWrapper = this.sqlStatementFactory.newInstance(args[0], INSERT_INTO_LISTAS);
var lista:Object = args[1];
sqlWrapper.statement.parameters[":idProducto"] = args[1];
sqlWrapper.statement.execute();
}
}
Dentro de args[1] me devuelve el id de cada producto seleccionado(lo he podido comprobar) haciendo un debug pero no me inserta bien los datos, pero si en vez de args[1] pongo "1" (uno de los id de mis productos) si que me inserta el registro ylo puedo ver haciendo un select de la tabla en la que lo he insertado.

Como puedo hacer que coja el valor numerico que se encuentra en el args[1]????

Por sergichu

19 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 May 2011 03:27 pm
Primero traza args para ver que tiene:

for(var in in args) trace(i+":"+args[i])

A ver si hay data relevante

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 May 2011 03:31 pm
Si si, esta el dato que necesito
esta en args[1]>[0]>idProducto, idSub_Categoria, NomProducto

Pues yo quiero el idProducto

Por sergichu

19 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 May 2011 03:33 pm
Pero intento hacer esto:
var lista:Object = args[1];
sqlWrapper.statement.parameters[":idProducto"] = lista.idProducto;
Pero me da error....

Por sergichu

19 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 May 2011 03:38 pm
que error?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 May 2011 03:45 pm
No me da un error concreto, solo que en el debug se va al ListCollectionView,
un archivo interno de flex a la linea :
if (index == -1)
{
var message:String = resourceManager.getString(
"collections", "unknownProperty", [ name ]);
>>> throw new Error(message);
}

Por sergichu

19 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 May 2011 03:53 pm
Pásale

args[1][0]

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 May 2011 03:59 pm
Correcto tenias razon!!!
pero claro como este args tiene que llevar los datos de los productos seleccionados.. solo me inserta el primer idproducto, el resto ya no....
como deberia hacer para que insertara tantos productos como yo le mandara..:?
con un for pero como?!:S

Por sergichu

19 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 May 2011 04:05 pm
El contador va en el segundo indice

args[1][i]

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 May 2011 04:08 pm
Como? no lo entiendo...

Por sergichu

19 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 May 2011 04:21 pm
Entiendo que el contador tiene que ir en lista[0].idProducto, pero para eso tengo que saber cuantos registros hay... no se donde ubicarlo ...

public function insertIntoLista(args:Array):void
{
if ( args[0] is DatabaseResponder && args[1] )
{
var sqlWrapper:SQLWrapper = this.sqlStatementFactory.newInstance(args[0], INSERT_INTO_LISTAS);
var lista:Object = args[1];

sqlWrapper.statement.parameters[":idProducto"] = lista[0].idProducto;

sqlWrapper.statement.execute();
}

}

Por sergichu

19 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 May 2011 04:26 pm
Prueba con

Array(lista[0]).length

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 May 2011 04:33 pm
OK, he probado esto pero me da el error Error: Error #3110: Operation cannot be performed while SQLStatement.executing is true.
at Error$/throwError()

Esto es lo que he probado
public function insertIntoLista(args:Array):void
{
if ( args[0] is DatabaseResponder && args[1] )
{
var sqlWrapper:SQLWrapper = this.sqlStatementFactory.newInstance(args[0], INSERT_INTO_LISTAS);
var lista:Object = args[1];
for (var i:int=0; i< args[1].length; i++)
{
sqlWrapper.statement.parameters[":idProducto"] = lista[i].idProducto;
sqlWrapper.statement.execute();
}
}
}

Por sergichu

19 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 May 2011 04:49 pm
El mensaje que me mada es el siguiente

Main Thread (Suspended: Error: Error #3110: Operation cannot be performed while SQLStatement.executing is true.)
Error$/throwError [no source]
flash.data::SQLStatement/checkReady [no source]
flash.data::SQLStatement/execute [no source]
database::Database/insertIntoLista
views::CheckboxInMobileIconItemRendererHomeView/next
views::CheckboxInMobileIconItemRendererHomeView/___CheckboxInMobileIconItemRendererHomeView_Button1_click


Es como si hiciese el primer insert y devolviese true y al ser true ya no deja volver hacer un insert.... no?

Por sergichu

19 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 May 2011 09:25 pm
jorge, realmente solo me queda eso para acabar el proyecto si me pudieses echar un cable te estaria muy agradecido

Por sergichu

19 de clabLevel



 

opera
Citar            
MensajeEscrito el 23 May 2011 12:21 am
Posiblemente tengas que esperar a que se termine de ejecutar para hacer la siguiente, es probable que execute devuelva un true o false, si no hay documentación donde puedas ver si tiene un callback, prueba usando un timer para que ejecute la operación cada N tiempo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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