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

Problema sin error especifico

Estas en el tema de Problema sin error especifico en el foro de ASP Clásico en Foros del Web. Hola Foro, a ver si me pueden ayudar con esto que llevo un tiempo sin poder resolver. Tengo el siguiente código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código asp: ...
  #1 (permalink)  
Antiguo 05/05/2009, 12:42
 
Fecha de Ingreso: abril-2005
Mensajes: 182
Antigüedad: 20 años
Puntos: 1
Problema sin error especifico

Hola Foro, a ver si me pueden ayudar con esto que llevo un tiempo sin poder resolver. Tengo el siguiente código:

Código asp:
Ver original
  1. sql = "INSERT INTO operaciones (fecha,forma_pago,total) VALUES (getdate(),'"& request.form("forma_pago") &"','"& request.form("total") &"')"
  2.            
  3. Conn.execute(sql)
  4.            
  5. set rs_ultimoID = Conn.execute("select top 1 id_operaciones  from operaciones order by id_operaciones desc")
  6. id_operaciones  = rs_ultimoID("id_operaciones ")
  7. set rs_ultimoID = nothing
  8.  
  9. cantidad = request.form("cant")
  10.  
  11. for g = 0 to cantidad
  12.     sql2 = "INSERT INTO invitados (id_operacion,nombre,telefono,mail) VALUES ("& id_operacion &",'"& request.form("nombre"&g) &"','"& request.form("telefono"&g) &"','"& request.form("mail"&g) &"')"
  13.     Conn.execute(sql2)
  14. next

basicamente lo que hace es procesar operaciones que hacen los invitados. El problema en concreto es que en algunos casos esporádicos me aparece un invitado "colado" en una operación, es decir un invitado que tendría que haber sido procesado en una nueva operacion, me aparece en la operacion anterior.

Cualquier ayuda me servirá ya que no estoy pudiendo encontrar el problema.

Muchas Gracias!
  #2 (permalink)  
Antiguo 05/05/2009, 13:35
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Respuesta: Problema sin error especifico

ummmm realmente no entendí....

insertas
obtienes el ultimo id de ese insert
lo metes en una variable
lo insertas en invitados


averigua sobre @@IDENTITY
http://technet.microsoft.com/es-es/l.../ms186775.aspx

que base de datos usas?
o hay que poner otra banderilla en la base de datos para saber cual es el que realmente deseas recuperar...

suerte


el problema esta cuando hace el select top 1
porque ese te trae el ultimo insertado, que no es el que acabas de insertar cierto?????
si no que te trae otro, que es (realmente) el ultimo insertado (que puede ser de otro usuario)
y ese insertas como invitado

depues de el insert into operaciones deverias de recoger el @@identiti que acabas de ingresar
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 05/05/2009, 16:20
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 2 meses
Puntos: 88
Respuesta: Problema sin error especifico


si depuras... podrias imprimir primero que trae "id_operaciones" como te dice Juan()

de ahi partes, para saber si te recolecta el dato....
despues.....
debes verificar que en realidad tengas datos en todos los inputs"g", ya que estas insertando varios con el mismo ID (imagino que ha de ser diferentes, dependiendo de lo que el usuario elija)



estas seguro que no despliega algun error.... o lo tienes opacado, para que no te muestre en pantalla?
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #4 (permalink)  
Antiguo 06/05/2009, 09:24
 
Fecha de Ingreso: abril-2005
Mensajes: 182
Antigüedad: 20 años
Puntos: 1
Respuesta: Problema sin error especifico

Gracias por su ayuda, el problema es el que dice JuanRAPerez y por lo que investigue a partir de este post la manera adecuada de hacer esto mediante un stored procedure que inserte y luego devuelva el @@IDENTITY.
  #5 (permalink)  
Antiguo 06/05/2009, 09:29
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Respuesta: Problema sin error especifico

pues lo puedes hacer en la misma sentencia SQL sin hacer el procedimiento

algo como

Código ASP:
Ver original
  1. SQL = "INSERT INTOTuTabla (Campo1) VALUES ('Valor Campo 1'); SELECT @@IDENTITY AS IDNUEVO;"

suerte

Saludos Shiryu_Libra
__________________
JuanRa Pérez
San Salvador, El Salvador
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 11:39.