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

recuperar scope identity

Estas en el tema de recuperar scope identity en el foro de ASP Clásico en Foros del Web. Hola muchachos.... despues de insertar en BD de sql quisiera recuperar en asp inmediatamente un folio que genera la inserción, ¿existe alguna manera de enviarla ...
  #1 (permalink)  
Antiguo 04/10/2010, 14:26
Avatar de citaem  
Fecha de Ingreso: agosto-2005
Mensajes: 218
Antigüedad: 18 años, 9 meses
Puntos: 0
Sonrisa recuperar scope identity

Hola muchachos.... despues de insertar en BD de sql quisiera recuperar en asp inmediatamente un folio que genera la inserción, ¿existe alguna manera de enviarla desde la BD? para poderle indicar al usuario el folio que genero su tramite...

GRACIAS
  #2 (permalink)  
Antiguo 04/10/2010, 15:14
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
Respuesta: recuperar scope identity

pero ese folio es un numero con autoincremento o se genera aleatoriamente o que?
  #3 (permalink)  
Antiguo 04/10/2010, 15:54
Avatar de citaem  
Fecha de Ingreso: agosto-2005
Mensajes: 218
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: recuperar scope identity

Es un folio independiente, al id de mi tabla que yo controlo con un trigger, ya que debe reiniciar anualmente. despues de que inserto mi registro genero el folio y actualizo el registro para ponerle su folio.... ese folio es el que quiero recuperar en mi asp, intente despues de mi query agregar el

//sqlTramites = sqlTramites + " SELECT @@Identity AS ID "

y recuperarlo despues de ejecutar el query...

//response.write @@Identity
//response.end

pero me marca error
  #4 (permalink)  
Antiguo 04/10/2010, 15:58
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Respuesta: recuperar scope identity

Claro

Solo vas a tener que ejecutar el query conservando un recordSet en lugar de un comando (aunque no se si se conservaría el identity en un parámetro en un command, cosa de probar)


strSQL = "Set Nocount on "
strSQL = strSQL + "INSERT INTO Facturas (..."
strSQL = strSQL + " select IdentityInsert=@@identity"
strSQL = strSQL + " set nocount off"

Y listo, lees el campo IdentityInsert del recordSet

Saludos
  #5 (permalink)  
Antiguo 04/10/2010, 16:31
Avatar de citaem  
Fecha de Ingreso: agosto-2005
Mensajes: 218
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: recuperar scope identity

Me ha causado un poco de con fusion tu respuesta, no entendi, pero lo agregue a mi codigo y aun asi no logre recuperar el valor, aparentemente no falla, pero no pude tomar en alguna variable el folio generado....

Código HTML:
sqlTramites = "Set Nocount on " 			
sqlTramites = sqlTramites + "insert into dbo.dtVU_Tramites(idctVU_MedioSolicitud, NoDoc, FecDoc, idctVU_TipoSolicitud,"  
sqlTramites = "insert into dbo.dtVU_Tramites(idctVU_MedioSolicitud, NoDoc, FecDoc, idctVU_TipoSolicitud,"  
sqlTramites = sqlTramites + "idctVU_Tramites, idctVU_Areas, EspeAreas, DescripcionReg,idctVU_Delegacion,idctVU_Estatus,FecRec) value("&slcMDosolicitud 						sqlTramites = sqlTramites + ",'"&txtNoDoc&"','"& Month(txtFecDoc) & "/" & Day(txtFecDoc) & "/" & Year(txtFecDoc)&"',"&slcTSolicitud&","&slcTramite&","&slcMatSol&",'"
sqlTramites = sqlTramites+ "&txtDesc&"',"&slcDelegacion&","&vEstatus&",'"&Month(txtFecRec) & "/" & Day(txtFecRec) & "/" & Year(txtFecRec)&"')"
sqlTramites = sqlTramites + "    "
sqlTramites = sqlTramites + "    "
sqlTramites = sqlTramites + " SELECT FolioGenerado = @@Identity"
sqlTramites = sqlTramites + " set nocount off "
					
		
Call ConnectionQuery(sqlTramites,0)

response.write ("<BR><FONT COLOR='RED'>FolioGenerado</FONT>"&Ob_RS("FolioGenerado"))

response.end

Y aun asi NADA, DE NADA.... ¿LO UTILICE MAL?
  #6 (permalink)  
Antiguo 04/10/2010, 17:09
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Respuesta: recuperar scope identity

Cuando dices "nada de nada" te refieres a que te envió un error, no envió nada o hizo alguna cosa que no esperabas? Si te envió algún error ¿puedes por favor describir de que error se trata y poner el código relacionado al error?

También ¿qué tipo de conexión usas? Necesitas OLEDB para poder regresar ese valor.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 04/10/2010, 17:09
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Respuesta: recuperar scope identity

Esto es un ejemplo que acabo de hacer y probar, funciona perfectamente. Solo modifícalo.

Código ASP:
Ver original
  1. <&#37;
  2.     set con = Server.CreateObject("ADODB.Connection")
  3.   Con.CommandTimeout  = 0
  4.   con.Open  "Provider=SQLNCLI10.1;Server=****;Database=****;Uid=****;Pwd=*****;Persist security info=true;"
  5.  
  6.   set rs = Server.CreateObject("adodb.recordset")
  7.   strSQL = "Set Nocount on "
  8.   strSQL = strSQL + "INSERT INTO Temporal_Tabla (Texto_Tabla) VALUES ('Esto es un texto de prueba') "
  9.   strSQL = strSQL + " select IdentityInsert=@@identity"
  10.   strSQL = strSQL + " set nocount off"
  11.  
  12.   rs.Open strSQL,con
  13.   response.write "ID insertado : " & rs("IdentityInsert")
  14. %>

Saludos

Etiquetas: recuperar
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 23:05.