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

Insertar un número con COMA decimal en SQLServer, pasado por formulario

Estas en el tema de Insertar un número con COMA decimal en SQLServer, pasado por formulario en el foro de ASP Clásico en Foros del Web. Hola buenas, antes escribía en el foro de PHP pero ahora me toca ASP, jeje. Os cuento. Tengo una aplicación para gestionar una tienda de ...
  #1 (permalink)  
Antiguo 16/01/2006, 12:54
Avatar de josemari11  
Fecha de Ingreso: agosto-2004
Ubicación: Fuenlabrada (Madrid)
Mensajes: 95
Antigüedad: 20 años, 8 meses
Puntos: 0
Insertar un número con COMA decimal en SQLServer, pasado por formulario

Hola buenas, antes escribía en el foro de PHP pero ahora me toca ASP, jeje.

Os cuento. Tengo una aplicación para gestionar una tienda de informática y estoy realizando ahora mismo el tema de presupuestos. El problema lo tengo cuando selecciono el producto, indico la cantidad y en campos ocultos del formulario tengo datos como el precio (con su COMA correspondiente), la descripcion y otros. Pues claro está, cuando envío el formulario, al hacer el INSERT INTO ... (..., precio, ...) VALUES ....," & Request("precio") & "... Pues me detecta la COMA y me intenta guardar otro campo más. El campo del precio está definido en la tabla como NUMERIC (en SQLServer) de longitud 9.

A ver si me podéis dar alguna solución. Gracias.
  #2 (permalink)  
Antiguo 16/01/2006, 14:58
 
Fecha de Ingreso: noviembre-2004
Mensajes: 371
Antigüedad: 20 años, 6 meses
Puntos: 0
prueba la funcion formatnumber(rs("tu_campo"),0) si trabajas los valores asi te dejara 0 valores despues de la coma
  #3 (permalink)  
Antiguo 16/01/2006, 15:26
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
Yo más bien quitaría la coma, ya sea con un replace o con un cast, y cuando quiera desplegar con la coma, ahí si con el formatnumber.

Saludos
  #4 (permalink)  
Antiguo 16/01/2006, 15:39
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 4 meses
Puntos: 7
Tienes dos opciones:

- Creas el campo 'precio' como varchar y lo insertas como tal. Luego al leerlo le haces una ligera limpieza de cara.

- La otra opcion tiene sus inconvenientes y sus ventajas:

Para insertar tendras que crear una funcion que convierta las comas en puntos. Es relativamente facil:

Código PHP:
function convertir(xx)
      
Dim x1c1c2
      x1 
cstr(xx)
      
c1 instr(x1,",")
      if 
c1 then 
             c1 
mid(x1,c1+1)
             
c2 left(x1,c1-1)
             
c2 Replace(c2,".","")
             
x1 c2 "." c1
      
else
             
x1 Replace(x1,".","")
      
end if
      
     if 
isnumeric(x1then convertir CDbl(x1) else convertir xx
      
end 
function 

Luego para leerlo desde MySQL, solo tendrás que usar LCID del objeto Session al principio del la página ASP

Código PHP:
 Activa codificación en español
select case strIdioma 
case "ES" 
    
Session.LCID 1034
case "EN"
    
Session.LCID 1033
case else
    
Session.LCID 2077
end select 
Esto junto con un FormatNumber(variable) codifica el numero dependiendo de la configuracion del cliente


Un saludo

Última edición por tammander; 16/01/2006 a las 15:45
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:12.