Foros del Web » Programando para Internet » ASP Clásico »

¿Puedo insertar en una BD al mismo tiempo que tengo abierto un Recordset?

Estas en el tema de ¿Puedo insertar en una BD al mismo tiempo que tengo abierto un Recordset? en el foro de ASP Clásico en Foros del Web. Tengo una BD con una tabla de productos(identificados por id_producto) y otra tabla (almacén) con la cantidad disponible de cada producto. Mi deseo es que ...
  #1 (permalink)  
Antiguo 23/01/2006, 15:35
 
Fecha de Ingreso: enero-2006
Mensajes: 30
Antigüedad: 18 años, 5 meses
Puntos: 0
¿Puedo insertar en una BD al mismo tiempo que tengo abierto un Recordset?

Tengo una BD con una tabla de productos(identificados por id_producto) y otra tabla (almacén) con la cantidad disponible de cada producto.
Mi deseo es que cuando "se compren" una determinada cantidad de productos, esta cantidad se descuente del almacén.
Dispongo de un array con los productos a comprar (productos[]) y otro array con la cantidad a comprar de cada producto (cantidades[])
Mi idea era abrir un RecordSet (rs.Open()) y con un bucle ir sacando del Almacén la cantidad disponible de cada id_producto, restarle la cantidad a comprar e introducir el nuevo valor en la tabla Almacén, pero no sé si se podría hacer todo al mismo tiempo (el recordSet y el Execute) en el mismo bucle...
El código sería algo así (suponiendo que "rs" es el RecordSet abierto):

Código:
var temp;
var sql;
var sql2;
for(i = 0; i <productos.length; i++) {
   sql =  "SELECT * FROM Almacen WHERE id_producto = productos[i];"
   rs.Open(sql, conexion);
   temp = rs("cantidad");
   temp = temp - cantidades[i];
   sql2 = "UPDATE Almacen SET cantidad = temp WHERE id_producto = productos[i] ;"
  conexion.Execute(sql2);
}
  #2 (permalink)  
Antiguo 23/01/2006, 18:29
 
Fecha de Ingreso: enero-2006
Mensajes: 30
Antigüedad: 18 años, 5 meses
Puntos: 0
Por si a alguien le es útil este post, puedo afirmar que el algoritmo anterior funciona, aunque no sé si de la manera más eficiente. A continuación expongo el algoritmo exacto (usando javascript como lenguaje de script en ASP):

Código:
var rs = Server.CreateObject("ADODB.Recordset");					
var temp = "";
var temp2 = 0;
var sql1 = "";
var sql2 = "";

for(var i=0; i< productos.length; i++) {
   sql1 =  "SELECT * FROM Existencias WHERE id_producto = "+productos[i]+";";
   rs.Open(sql1, conexion);
   temp = "" + rs("cantidad");
   temp2 = parseInt(temp);
   temp2 -= cantidades[i];
   sql2 = "UPDATE Existencias SET cantidad = "+temp2+" WHERE id_producto = "+productos[i]+";";
   conexion.Execute(sql2);
rs.Close();												}	
rs = null;
conexion.Close();
conexion = null;
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:30.