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

error en la insercion de datos float en SQL Server

Estas en el tema de error en la insercion de datos float en SQL Server en el foro de ASP Clásico en Foros del Web. Tengo una BBDD en SQL Server. En una de sus tablas hay un campo de tipo "float" en el que intento guardar una variable de ...
  #1 (permalink)  
Antiguo 28/07/2003, 06:07
 
Fecha de Ingreso: diciembre-2001
Mensajes: 62
Antigüedad: 22 años, 6 meses
Puntos: 0
error en la insercion de datos float en SQL Server

Tengo una BBDD en SQL Server. En una de sus tablas hay un campo de tipo "float" en el que intento guardar una variable de session que es el resultado de una división de dos dígitos Session("PuntuacionMedia") = CDbl( CInt(p_total) / CInt(n_votaciones) ). Dicha variable, en ciertos momentos, contiene decimales, y siempre me aparece el siguiente error:

"Error en Base de datos: [Microsoft][ODBC SQL Server Driver][SQL Server]Error al convertir el tipo de datos varchar a float. "

¿Qué tengo que modificar o arreglar?

Muchas gracias y un saludo
  #2 (permalink)  
Antiguo 28/07/2003, 06:19
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 2 meses
Puntos: 0
Puede que se solucione modificando la coma decimal por un punto
  #3 (permalink)  
Antiguo 28/07/2003, 06:29
 
Fecha de Ingreso: diciembre-2001
Mensajes: 62
Antigüedad: 22 años, 6 meses
Puntos: 0
uyyyyyyyy casi!!!! :)

haciendo eso ya no me da ningún error, pero.... (siempre tiene que haber algún pero jeje) ahora lo que me guarda es, por ejemplo, si el resultado de la operacion me da 8,088 yo sustituyo la coma por un punto y me guarda 8888 (ocho mi ochenta y ocho)


enga, a seguir ayudando al coleguilla. Un saludo
  #4 (permalink)  
Antiguo 28/07/2003, 07:48
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 2 meses
Puntos: 0
Prueba a comprobar antes de nada, el valor de Session("PuntuacionMedia"), y haz un serponse.write instruccion sql a ejecutar, para ver que está grabando.

También comrpueba, que no tengas ningún punto de millares por ningún sitio
  #5 (permalink)  
Antiguo 29/07/2003, 05:15
 
Fecha de Ingreso: diciembre-2001
Mensajes: 62
Antigüedad: 22 años, 6 meses
Puntos: 0
ya lo he hecho, y si no pongo ningún replace me muestra 8,7 (por ejemplo pq hago un redondeo) y si pongo el replace Session("PuntuacionMedia") = Replace(Session("PuntuacionMedia"), ",",".") me muestra 8.67584 y lo que me ingresa en la base de datos es 867584
  #6 (permalink)  
Antiguo 29/07/2003, 08:40
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 2 meses
Puntos: 0
¿¿Como estás grabando la información en la tabla??

Con una instrucción SQL tipo INSERT INTO, o con recordset.edit.... recordset.update.

ya de paso escribe las lineas en las que ejecutas esto, dará más información de por donde mirar
  #7 (permalink)  
Antiguo 31/07/2003, 02:46
 
Fecha de Ingreso: diciembre-2001
Mensajes: 62
Antigüedad: 22 años, 6 meses
Puntos: 0
No es una inserción, sino una actualización de un registro en concreto. La sentencia es la siguiente:

"UPDATE Articulo SET PuntuacionMedia = '" & Round(Session("PuntuacionMedia"),1) & "' WHERE IDArticulo = " & artVotado & ";"


donde artVotado es la variable que le indica el artículo concreto que se tiene que actualizar



Un saludo
  #8 (permalink)  
Antiguo 31/07/2003, 02:53
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 2 meses
Puntos: 0
Has probado a quitarle el Round, probablemente es el que te está entendiendo mal la variable.

Luego de quitarle el Round, y asegurarte que mandas puntos decimales y no comas, mira que ha guardado
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 21:13.