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

cómo hacer un incremental pero con un varchar??

Estas en el tema de cómo hacer un incremental pero con un varchar?? en el foro de ASP Clásico en Foros del Web. Hola a todos, trabajo con ASP, pero creo q la pregunta va en este foro... mi problema es q tengo un tabla y su id ...
  #1 (permalink)  
Antiguo 22/06/2005, 09:27
Avatar de Tarecito  
Fecha de Ingreso: noviembre-2003
Ubicación: Lima - Perú
Mensajes: 443
Antigüedad: 21 años, 5 meses
Puntos: 1
cómo hacer un incremental pero con un varchar??

Hola a todos, trabajo con ASP, pero creo q la pregunta va en este foro... mi problema es q tengo un tabla y su id es el código de registro, anteriormente estaba en int (SQL Server) y podía usar el autoincremental, pero ahora lo quieren de esta forma: "xxxxxxxxx-yy" donde los dos último dígitos son los del año correspondiente (05,06, etc). Cómo puedo hacer para q me genere el siguiente código consecutivo? osea, si tengo 0000422-05, q me genere el 0000423-05?? Muchas gracias. (este mensaje lo publique en el foro de javascript y me mandaron aqui)
__________________
Tarecito
  #2 (permalink)  
Antiguo 22/06/2005, 09:36
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Pues no es de ASP sino de BD's, pero igual te dirán que no se puede. El autoincrmental es numérico.
Para hacer lo que quieres necesitaras de alguna función tuya. Supongo que los registros al ser eliminados (aún los últimos), la cuenta deberá seguir, por lo que te suguiero que implementes una tabla secundara auxiliar donde vayas incrementando un campo con el número consecutivo + 1 con el que vas a llenar el campo de varchar. Ya solo le concatenas el año y listo.

Saludos
  #3 (permalink)  
Antiguo 22/06/2005, 09:46
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 21 años, 11 meses
Puntos: 5
chequea esto para ver si te sirve... calcula y suma el numero con el año incluido y agrega la cantidad de ceros.


Código:
 
sSQL = "select max(campo) as ultimo_registro from tabla"
set RSUltimoRegistro = Master.Execute(sSQL)
if RSUltimoRegistro.bof=false and RSUltimoRegistro.eof=false then
ultimo_id = RSUltimoRegistro("ultimo_registro")
ano = right(year(date()), 2)
new_id = clng(left(ultimo_id, instr(ultimo_id, "-")-1)) + 1
new_id = right("0000000" & new_id, 7)
new_id = new_id & "-" & ano
 
response.Write(new_id)
end if
la variable new_id te trae el siguiente y con ella entonces haces lo que quieras (insert por ejemplo)

saludos

pd. con lo que dijo Myakire lo puedes hacer... buena sugerencia Myakire.
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #4 (permalink)  
Antiguo 22/06/2005, 13:15
Avatar de Tarecito  
Fecha de Ingreso: noviembre-2003
Ubicación: Lima - Perú
Mensajes: 443
Antigüedad: 21 años, 5 meses
Puntos: 1
muchas gracias a ambos Miakyre y Saruman por su ayuda. Probé con tu código Saruman y era lo q encesitaba, gracias.
__________________
Tarecito
  #5 (permalink)  
Antiguo 22/06/2005, 13:36
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 21 años, 11 meses
Puntos: 5
me alegra haber ayudado.
saludos
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
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 08:35.