Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Como incrementar un campo ID

Estas en el tema de Como incrementar un campo ID en el foro de Oracle en Foros del Web. Hola amigos vereis, tengo un problemilla con una base de datos de oracle, el problema es que intento insertar un registro de la siguiente forma ...
  #1 (permalink)  
Antiguo 22/09/2006, 02:47
 
Fecha de Ingreso: octubre-2004
Mensajes: 230
Antigüedad: 19 años, 6 meses
Puntos: 0
Como incrementar un campo ID

Hola amigos vereis, tengo un problemilla con una base de datos de oracle, el problema es que intento insertar un registro de la siguiente forma

Código:
rs.AddNew
		  rs("id") = cnuevo
          rs("filename") = fileName
          rs("filesize") = fileSize
          rs("filedata").AppendChunk fileData
          rs("contentype") = contentType
          rs("firstname") = fnameInput
          rs("lastname") = lnameInput
          rs("profession") = profession
        rs.Update
esto lo hace el problema esta en el campo "ID" que como oracle no tienes campos autoincrement pues intento solucionarlo asi
Código:
rs1.Open "SELECT max(id)AS M FROM images ",connStr, 2, 2
		
IF rs1.fields("M").value = null THEN
cultimo = 1
else
cultimo = rs1.fields("M").value
cnuevo = cultimo + 1
end if
y el caso esque si que me mete el registro pero el campo "ID" queda vacio........ Como lo podría solucionar.....Gracias
  #2 (permalink)  
Antiguo 22/09/2006, 07:14
Avatar de diegopedro  
Fecha de Ingreso: agosto-2006
Ubicación: Santiago
Mensajes: 120
Antigüedad: 17 años, 9 meses
Puntos: 0
Existe secuencias en oracle

CREATE SEQUENCE mi_secuencia
INCREMENT BY 1
START WITH 1
MINVALUE 1
MAXVALUE 999999999999999999999999999
NOCYCLE
NOORDER
CACHE 20

En tu asp
select mi_secuencia from dual;
Recuperas en una variable mi_secuencia luego la utilizas en tu insercion
  #3 (permalink)  
Antiguo 22/09/2006, 13:37
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
bueno como dice diego pedro n oracle existe el secuencias, en ella puedes crear los campo autoincrementales y puedes hacer un triggers que acda vez que insertes un campo, que vaya a buscar el nextval de la secuencia y lo inserte.

te doy un consejo ocuoa el oracle sql developer, su nombre puede ser muy moustroso, pero es simple de usar y te ahce la vida muy facil
en el hay unos pasos mecanicos para hacer eso del campo id incremental
te vaz a la secuencias y creas una
luego a la tabla y hace click con el boton derecho y te vaz en el menu a trigger y luego a crear create (pk for secuencie)
luego le pones nombre el triggers, eliges la secuencia y a la columna que se va a autoincrementar y listo.
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #4 (permalink)  
Antiguo 27/09/2006, 19:50
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
tienes dos opciones

1) como lo estabas haciendo salvo que lo modificaria

SELECT nvl(max(id), 0) + 1 AS M FROM images

y te olvidas del if que hacias despues

2) creas la secuencia como te dicen y, o haces el select nextval o creas un trigguer en la tabla como despues dijeron
__________________
Blogzote.com :-) Mi blog
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 18:38.