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

DB; valor de un campo +1

Estas en el tema de DB; valor de un campo +1 en el foro de ASP Clásico en Foros del Web. Quiero saber de que manera puedo agregar un nuevo registro a una base de datos, la clave principal esta en el formato " B(numero)", como ...
  #1 (permalink)  
Antiguo 11/08/2003, 13:52
Avatar de zeudio  
Fecha de Ingreso: enero-2002
Mensajes: 314
Antigüedad: 22 años, 4 meses
Puntos: 4
DB; valor de un campo +1

Quiero saber de que manera puedo agregar un nuevo registro a una base de datos, la clave principal esta en el formato "
B(numero)", como B1, B2, ...

El caso es que me gustaría saber como inchementar digamos de B50 a B51, algo como B5 +1, esto desde la misma web, osea que no en acces.

Por favor ayudenme!!!!!!!
  #2 (permalink)  
Antiguo 12/08/2003, 02:15
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 2 meses
Puntos: 0
Primero deberías obtener el mayor de la clave para guardar el siguiente, para ello ejecutas la siguiente SQL:

SELECT Max(Mid(CampoClave, 2, 10) AS MaxValor FROM TuTabla

El 10 (diez) será un poco exagerado, aunque nunca se sabe, es para asegurarte de que cogerás todos los números que puedas tener, con esto ya tienes el mayor, súmale 1 y ya puedes grabar la clave

Un saludo
  #3 (permalink)  
Antiguo 12/08/2003, 12:04
Avatar de zeudio  
Fecha de Ingreso: enero-2002
Mensajes: 314
Antigüedad: 22 años, 4 meses
Puntos: 4
ok, ya lo hice pero me aparece este error:


Tipo de error:
Error de Microsoft VBScript en tiempo de ejecución (0x800A000D)
No coinciden los tipos: '[string: "B41"]'
/inventta/capturaUAR.asp, line 16


supongo que se debe a que estoy intentando sumar un valor numerico (+ 1) a "B50", no se si me explique, por ejemplo en este caso, quiero que me debuelva el valor "B51"
  #4 (permalink)  
Antiguo 13/08/2003, 01:42
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 2 meses
Puntos: 0
Supongo que se debe, a que en el CampoClave, hay espacios delante, o alguna otra cosa ¿¿¿???

Cambia la SELECT que te puse antes por esta:

SELECT Max(Val(Mid(lTrim(CampoClave), 2, 10)) + 1 AS MaxValor FROM TuTabla


Con esto debería funcionar, además, si el útimo grabado es el B50, debería devolver B52


Suerte
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 02:16.