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

guardar carrito

Estas en el tema de guardar carrito en el foro de ASP Clásico en Foros del Web. utilizo un array con una variable de session para un carrito de compras (segun yo es la mejor forma) pero aun no estoy muy seguro ...
  #1 (permalink)  
Antiguo 26/12/2002, 11:26
Avatar de xlugo2002  
Fecha de Ingreso: noviembre-2002
Ubicación: Puebla, México
Mensajes: 474
Antigüedad: 22 años, 5 meses
Puntos: 0
guardar carrito

utilizo un array con una variable de session para un carrito de compras (segun yo es la mejor forma) pero aun no estoy muy seguro de como vaciar mi carrito a mi BD, he leido y se que debo usar transacciones, lo aplique utilando un COM+ pero hice una instruccion INSERT por cada elemento en el carrito (ya que lo tengo en una transaccion TODOS los INSERT deberian de aplicarse como una ***sola** instruccion . o sea que yo digo que no hay bronca).

Pero, porfa diganme si estoy bien o mal, o si hay otras mejores opciones de insertar mi carrito en mi BD. gracias.
  #2 (permalink)  
Antiguo 26/12/2002, 23:27
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 22 años, 5 meses
Puntos: 37
Puedes hacerlo sin problema haciendo "request" de las variables del formulario del carrito, concatenarlas en una instruccion sql con un "insert" y listo, no es forzoso el uso de las variables de sesión, puede ver muchos ejemplos en www.aspin.com
  #3 (permalink)  
Antiguo 27/12/2002, 11:09
Avatar de xlugo2002  
Fecha de Ingreso: noviembre-2002
Ubicación: Puebla, México
Mensajes: 474
Antigüedad: 22 años, 5 meses
Puntos: 0
¿es mejor usau solo un INSERT?

O SEA QUE SEGUN TU UNICAMENTE ES NECESARIO USAR UN INSERT, ALGO COMO:
INSERT INTO PEDIDOS VALUES (ARTICULO1,ARTICULO2.....)

PERO YO TENGO ALGO COMO:

FOR 1 TO N
INSERT INTO PEDIDOS......
STEP

LES DIGO QUE USO TRANSACCIONES Y UTILIZO EL CICLO PARA VACIAR C/U DE LOS ARTICULOS DEL CARRITO A LA BD

¿PERO SI INSERTO 100 ARTICULOS HACER 100 INSERT PUEDE SER NO OPTIMO?

¿SERA MEJOR CONCATENAR Y HACER SOLO UNA INSTRUCCION INSERT DE SQL?

GRACIAS
  #4 (permalink)  
Antiguo 27/12/2002, 11:58
 
Fecha de Ingreso: febrero-2002
Ubicación: Mi ASP Bunker
Mensajes: 397
Antigüedad: 23 años, 2 meses
Puntos: 1
Cita:
ya que lo tengo en una transaccion TODOS los INSERT deberian de aplicarse como una ***sola** instruccion
Creo te confundes, una Transaccion NO necesariamente debe ser una instruccion, sino q es una especie de semaforo indicando q desde q se inicia la transaccion hasta q termina, si hubiere un error en alguna de las instrucciones, de marcha atras todas las anteriores, restableciendo la BD tal cual estaba en un comienzo, o sea, si graba q grabe todos los registros, sino ninguno.

Ademas, supongo la unica alternativa para cargar varios registros es hacer un INSERT por cada elemento.

Si se podria controlar mejor si ha tenido exito o no, con transacciones, guardando el carrito en una cookie por si el usuario se va de sesion abruptamente o sino en una tabla o file plano temporal y de ahi recien enviarlo a la tabla principal de pedidos.

saludos !
  #5 (permalink)  
Antiguo 27/12/2002, 12:23
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Cita:
una Transaccion NO necesariamente debe ser una instruccion, sino q es una especie de semaforo indicando q desde q se inicia la transaccion hasta q termina, si hubiere un error en alguna de las instrucciones, de marcha atras todas las anteriores, restableciendo la BD tal cual estaba en un comienzo
esto incluso puede ser manejo sin el uso de COM, basta que en vez de ejecutar un insert via una cadena sql lo hagas por medio de un procedimiento de almacenado...

Código:
begin tran

INSERT Tabla
campo1,
campo2,
...

if @@error <> 0
   begin
    SELECT -4, "En estos momentos no lo podemos atender. Por favor reintente mas tarde"
    rollback tran 
    return
este procedimiento tendrias que llamarlo la cantidad de veces en que insertas un registro ya que como dice Nochero...no se pueden ejeuctar insert multiples.
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 09:51.