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

ID autonumérico de un INSERT INTO

Estas en el tema de ID autonumérico de un INSERT INTO en el foro de ASP Clásico en Foros del Web. ...me gustaría saber como puedo hacer para que al añadir un registro a una tabla averiguar su ID (campo autonumérico) sin tener que buscar el ...
  #1 (permalink)  
Antiguo 08/01/2003, 03:35
Avatar de codify  
Fecha de Ingreso: febrero-2002
Ubicación: Barcelona (España)
Mensajes: 183
Antigüedad: 22 años, 3 meses
Puntos: 1
ID autonumérico de un INSERT INTO

...me gustaría saber como puedo hacer para que al añadir un registro a una tabla averiguar su ID (campo autonumérico) sin tener que buscar el registro de nuevo...

...actualmente lo que hago es primero añadir dicho registro y después hago un SELECT buscando ese mismo registro y eso es un coñazo, además, si hay registros que son iguales (solo se diferencian por su ID) me puede dar lugar a error y eso sería nefasto...

...please!...ayudadme...
__________________
====================
Codify
====================
  #2 (permalink)  
Antiguo 08/01/2003, 04:28
Avatar de Antonito  
Fecha de Ingreso: noviembre-2001
Ubicación: en la red
Mensajes: 446
Antigüedad: 22 años, 6 meses
Puntos: 3
Si añandes el dato con recordset, sin cerrarlo podrías acceder a este dato, no? Creo que es asi....

Yo lo tengo como tu, hago dos consultas. A menos, claro está que tengas el número del último registro, solo habría que suimarle uno... ;) ya se que esto no te vale... ;)

El problema es que hasta que no creas el registro, no le asigna un numero, pero si lo creas con recordset, hasta que no lo cierres, tienes acceso a esa información.

Si te vale y si quieres más info de como hacerlo de esta manera, dime.

Salu2
  #3 (permalink)  
Antiguo 08/01/2003, 05:02
Avatar de codify  
Fecha de Ingreso: febrero-2002
Ubicación: Barcelona (España)
Mensajes: 183
Antigüedad: 22 años, 3 meses
Puntos: 1
yo hago lo siguiente:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BBDD"
add = "insert into TABLA (nombre) values ('" & nombre & "')"
Conn.Execute(add)

...y a partir de aqui ya no sé que hacer para recuperar el ID del registro añadido...

...y claro, si hay 2 nombres iguales no puedo hacer el SELECT buscando por el nombre porque me aparecería el primero de la tabla que coincidiera...y si no es el mismo que el que he añadido...que?...
__________________
====================
Codify
====================
  #4 (permalink)  
Antiguo 08/01/2003, 05:35
Avatar de korev  
Fecha de Ingreso: diciembre-2002
Ubicación: Barcelona
Mensajes: 127
Antigüedad: 21 años, 5 meses
Puntos: 0
Lo ideal sería pasar por un tabla temporal para más seguridad. De todas formas si vas a hacerlo directamente sobre la tabla 'fija', el procedimiento es el siguiente:

1. En vez de usar el insert into, abres la conexión como si fueras a usar el add.new etc, es decir, dándote márgen para operar con la base de datos.
2. Cuando la abras hazlo con los cerrojos bloqueados al máximo, te interesa que al abrirla solamente puedas hacerlo tú (y evitar así dos insert de nombre a la vez).
3. Una vez abierta...
a. coges la última id
b. insertas el dato y haces update.
c. id=id+1 (o la coges después sin la operación, da lo mismo).
4. cierras la conexión y el resto como de costumbre.
__________________
on error... resume next
  #5 (permalink)  
Antiguo 08/01/2003, 07:04
Avatar de Antonito  
Fecha de Ingreso: noviembre-2001
Ubicación: en la red
Mensajes: 446
Antigüedad: 22 años, 6 meses
Puntos: 3
A eso me referia, mira el vinculo si no entiendes lo que dice korev.

Bsos.
  #6 (permalink)  
Antiguo 08/01/2003, 08:00
Avatar de codify  
Fecha de Ingreso: febrero-2002
Ubicación: Barcelona (España)
Mensajes: 183
Antigüedad: 22 años, 3 meses
Puntos: 1
...vínculo?...que vínculo?
__________________
====================
Codify
====================
  #7 (permalink)  
Antiguo 08/01/2003, 08:04
Avatar de Antonito  
Fecha de Ingreso: noviembre-2001
Ubicación: en la red
Mensajes: 446
Antigüedad: 22 años, 6 meses
Puntos: 3
Se me ha ido la olla... es otra discusión.... sorry....
  #8 (permalink)  
Antiguo 08/01/2003, 10:22
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 5 meses
Puntos: 1
Que tal si utilizas el buscador del sitio para lo que quieres?
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 20:41.