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

insertar y saber su numero de registro

Estas en el tema de insertar y saber su numero de registro en el foro de ASP Clásico en Foros del Web. heyyyy, despues de insertar un registro (INSERT...) necesito sabe el numero de su id (numero de registro de campo Autonumerico), para poder realizar otro INSERT ...
  #1 (permalink)  
Antiguo 01/10/2003, 14:04
Avatar de xlugo2002  
Fecha de Ingreso: noviembre-2002
Ubicación: Puebla, México
Mensajes: 474
Antigüedad: 21 años, 7 meses
Puntos: 0
insertar y saber su numero de registro

heyyyy, despues de insertar un registro (INSERT...) necesito sabe el numero de su id (numero de registro de campo Autonumerico), para poder realizar otro INSERT con ese Id en otra tabla..............
  #2 (permalink)  
Antiguo 01/10/2003, 15:46
 
Fecha de Ingreso: septiembre-2003
Mensajes: 128
Antigüedad: 20 años, 9 meses
Puntos: 0
Deberias averiguar si tu base de datos tiene algun comando o store procedure que te devuelva eso. En SqlSErver se que hay uno, pero no te asegura que corresponda al inserte que hiciste, en el medio se te puede meter otro usuario.

Una solucion podria se que tengas una clave alternativa o generes un campo rnd y con ese dato hagas un select a tu tabla, lo que me parece bastante feo.

Otra es que tengas una tabla de ultimos numeros, va a ser mas eficiente.

Cuentame como lo solucionas, me interesa, Daniel.
  #3 (permalink)  
Antiguo 01/10/2003, 16:47
Avatar de xlugo2002  
Fecha de Ingreso: noviembre-2002
Ubicación: Puebla, México
Mensajes: 474
Antigüedad: 21 años, 7 meses
Puntos: 0
??????????

Inmediátamente después del insert ejecuta esta sentencia

select @@identity

Es una variable de SQL que te devuelve el último valor de identidad insertado.

Ejemplo
INSERT INTO jobs (job_desc,min_lvl,max_lvl)
VALUES ('Accountant',12,125)
SELECT @@IDENTITY AS 'Identity'

una pregunta estupida:

cómo acceso al valor de esa variable, es decir como la uso??????

varASP = Identity !!!!!!!!!!!

---------------------------------
otro ejemplo:

rs.addNew
rs.fields("primero") = "Primero"
rs.fields("segundo") = "Segundo"
rs.update

Numeroid = rs.fields("id")

rs.Close

puts, creo que la solucion puede ser:

http://www.desarrolloweb.com/articulos/934.php


bueno para access funciona como se muestra en:

http://p2p.wrox.com/archive/asp_espanol/2002-08/22.asp

¿ ALGUIEN PODRIA PONER EL CODIGO DE COMO SE HACE EN SQL SERVER?



Última edición por xlugo2002; 01/10/2003 a las 17:16
  #4 (permalink)  
Antiguo 05/12/2003, 15:24
 
Fecha de Ingreso: diciembre-2002
Mensajes: 57
Antigüedad: 21 años, 5 meses
Puntos: 0
De acuerdo

Respecto a tu duda de como acceder al valor lo que yo hago en ASP es hacer una consulta, tal como si fuera un select.
Lo hago de esta forma:

se crea el regitro:
Set registros = db_conexion.Execute("INSERT INTO jobs (job_desc,min_lvl,max_lvl) VALUES ('Accountant',12,125);")

luego consulto por registro recien ingresado:
Set registros = db_conexion.Execute("SELECT @@IDENTITY AS id;" )

en este caso el 'Identity' se llama 'id'

luego para saber el valor de id, veo el valor del registro así:
registros.Fields("id").Value


espero que te sirva.
Chao
__________________
Rudo007
  #5 (permalink)  
Antiguo 28/01/2004, 19:29
Avatar de xlugo2002  
Fecha de Ingreso: noviembre-2002
Ubicación: Puebla, México
Mensajes: 474
Antigüedad: 21 años, 7 meses
Puntos: 0
identity en Access y MySQL

objCon.Execute sentSql,,adCmdText

Set ui = objCon.execute("select @@identity")
iden = ui(0)

Bueno no sabia como saber el ultimo registro insertado (autoincrement) , pero lo intente en Access con @@identity y jaló

Bueno, ahora estoy migrando de Access a MYSQL , y bueno, el @@identity tambien me funcionó........

alguien sabe si ésto es así ????? ......

gracias
  #6 (permalink)  
Antiguo 30/05/2004, 16:04
amj
 
Fecha de Ingreso: marzo-2002
Ubicación: Manizales
Mensajes: 152
Antigüedad: 22 años, 2 meses
Puntos: 1
Porque no crea un campo tipo fecha y lo haces mejor con ese campo?
__________________
"SJ
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 20:40.