Comas y puntos [ayuda please]

13/11/2004 - 21:59 por Mauricio López [uy] | Informe spam
Amigos:

Tengo un problema con la inserción de valores numéricos con decimales desde VB a un campo
smallmoney de SQL-Server, me gustaría saber cómo han resuelto ustedes la misma dificultad:

*Necesito ingresar valores "con coma" ej. 54,35 a un campo smallmoney. En VB6 usando una variable
double lo guarda perfectamente, pero cuando quiero pasar este valor a un registro de una tabla en
SQL-Server éste toma como que fuera un campo nuevo, o sea 54 uno y 35 otro, generando un error en la
inserción.

Supongo que debería usar puntos y no comas, pero no voy a cambiar la configuración regional de
cada PC...

Desde ya muy agradecido.

Saludos!

Mauricio López
Maldonado - Uruguay

Preguntas similare

Leer las respuestas

#1 ulises
13/11/2004 - 23:17 | Informe spam
Me imagino que debes estar formando la sentencia SQL dentro de tu
programa y como SQL solo acepta el "punto decimal" te da el error que
mencionas, tienes dos alternativas: al momento de formar la cadena
reemplazar la coma decimal por punto decimal o manejar las inserciones
dentro de un procedimiento almacenado y pasar los valores como
parámetros (la opción recomendada).

Saludos,
Ulises

On Sat, 13 Nov 2004 18:59:53 -0200, "Mauricio López [uy]"
wrote:

Amigos:

Tengo un problema con la inserción de valores numéricos con decimales desde VB a un campo
smallmoney de SQL-Server, me gustaría saber cómo han resuelto ustedes la misma dificultad:

*Necesito ingresar valores "con coma" ej. 54,35 a un campo smallmoney. En VB6 usando una variable
double lo guarda perfectamente, pero cuando quiero pasar este valor a un registro de una tabla en
SQL-Server éste toma como que fuera un campo nuevo, o sea 54 uno y 35 otro, generando un error en la
inserción.

Supongo que debería usar puntos y no comas, pero no voy a cambiar la configuración regional de
cada PC...

Desde ya muy agradecido.
Respuesta Responder a este mensaje
#2 Mauricio López [uy]
14/11/2004 - 17:00 | Informe spam
Ulises

Pero no es una cadena, es un double, ¿lo tendría que convertir a cadena y luego quitar la
coma?

¿Cómo sería con un procedimiento almacenado?

Saludos!

Mauricio López
Maldonado - Uruguay
-
Me imagino que debes estar formando la sentencia SQL dentro de tu
programa y como SQL solo acepta el "punto decimal" te da el error que
mencionas, tienes dos alternativas: al momento de formar la cadena
reemplazar la coma decimal por punto decimal o manejar las inserciones
dentro de un procedimiento almacenado y pasar los valores como
parámetros (la opción recomendada).

Saludos,
Ulises

On Sat, 13 Nov 2004 18:59:53 -0200, "Mauricio López [uy]"
wrote:

Amigos:

Tengo un problema con la inserción de valores numéricos con decimales desde VB a un campo
smallmoney de SQL-Server, me gustaría saber cómo han resuelto ustedes la misma dificultad:

*Necesito ingresar valores "con coma" ej. 54,35 a un campo smallmoney. En VB6 usando una variable
double lo guarda perfectamente, pero cuando quiero pasar este valor a un registro de una tabla en
SQL-Server éste toma como que fuera un campo nuevo, o sea 54 uno y 35 otro, generando un error en la
inserción.

Supongo que debería usar puntos y no comas, pero no voy a cambiar la configuración regional de
cada PC...

Desde ya muy agradecido.
Respuesta Responder a este mensaje
#3 Isaias
15/11/2004 - 03:29 | Informe spam
Mauricio

¿Porques se preocupa en guarda un dato con FORMATO, si con CAST / CONVERT
puede formatearlo una vez obtenido de su base de datos?

SELECT CONVERT (varchar(17), CAST(1158963.25 AS money), 1)
Respuesta Responder a este mensaje
#4 Mauricio López [uy]
15/11/2004 - 15:33 | Informe spam
Isaias:

Es que si yo tuviera esta cadena, no precisaría convertirla, la cosa es que sería de esta forma:

SELECT CONVERT (varchar(17), CAST('1158963,25' AS money), 1)

y esto da como resultado 115,896,325.00 lo cual es incorrecto debería ser 1,158,963.25.


Saludos!

Mauricio López
Maldonado - Uruguay
-
Mauricio

¿Porques se preocupa en guarda un dato con FORMATO, si con CAST / CONVERT
puede formatearlo una vez obtenido de su base de datos?

SELECT CONVERT (varchar(17), CAST(1158963.25 AS money), 1)
Respuesta Responder a este mensaje
#5 ulises
15/11/2004 - 17:50 | Informe spam
Es un double el campo en VB pero lo formateas para formar
una cadena que es al final lo que envias al SQL (si no es
así indica como lo haces), en ese caso tendrías que cambiar
la "," por el "." ya que SQL Server no te acepta coma
decimal. En un procedimiento solo tendrías que crear la
variable con el valor correspondiente

CREATE PROC procedimiento ( ..., monto as decimal(15,2) , ...

en VB algo asÍ:

cmd.CommandText = "procedimiento"
cmd.CommandType = adCmdStoredProc
cmd.CreateParameter("monto", adDouble, adParamInput, , campoVB)

Saludos,
Ulises

Ulises

Pero no es una cadena, es un double, ¿lo tendría


que convertir a cadena y luego quitar la
coma?

¿Cómo sería con un procedimiento almacenado?

Saludos!

Mauricio López
Maldonado - Uruguay
-
Me imagino que debes estar formando la sentencia SQL


dentro de tu
programa y como SQL solo acepta el "punto decimal" te da


el error que
mencionas, tienes dos alternativas: al momento de formar


la cadena
reemplazar la coma decimal por punto decimal o manejar las


inserciones
dentro de un procedimiento almacenado y pasar los valores como
parámetros (la opción recomendada).

Saludos,
Ulises

On Sat, 13 Nov 2004 18:59:53 -0200, "Mauricio López [uy]"
wrote:

Amigos:

Tengo un problema con la inserción de valores




numéricos con decimales desde VB a un campo
smallmoney de SQL-Server, me gustaría saber cómo han




resuelto ustedes la misma dificultad:

*Necesito ingresar valores "con coma" ej. 54,35 a un




campo smallmoney. En VB6 usando una variable
double lo guarda perfectamente, pero cuando quiero pasar




este valor a un registro de una tabla en
SQL-Server éste toma como que fuera un campo nuevo, o sea




54 uno y 35 otro, generando un error en la
inserción.

Supongo que debería usar puntos y no comas, pero no




voy a cambiar la configuración regional de
cada PC...

Desde ya muy agradecido.




.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida