Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Ayuda! Error al insertar un valor double en un campo del tipo float

Estas en el tema de Ayuda! Error al insertar un valor double en un campo del tipo float en el foro de SQL Server en Foros del Web. Primeramente saludo a todos ya que soy nueva en el foro. Mi problema es el siguiente, estoy trabajando en Visual Basic y al querer INSERTAR ...
  #1 (permalink)  
Antiguo 07/09/2006, 05:48
 
Fecha de Ingreso: septiembre-2006
Mensajes: 2
Antigüedad: 17 años, 7 meses
Puntos: 0
Sonrisa Ayuda! Error al insertar un valor double en un campo del tipo float

Primeramente saludo a todos ya que soy nueva en el foro.

Mi problema es el siguiente, estoy trabajando en Visual Basic y al querer INSERTAR un campo en mi base de datos SQL SERVER 2000, sale el siguiente error:

Error 2147217900 (80040e14) - Hay menos columnas en la instrucción INSERT que valores en la cláusula VALUES. El nº de valores de VALUES debe coincidir con el de columnas INSERT.

Yo envio la misma cantidad en ambos, salvo que uno de los valores que envío es del tipo DOUBLE.

Cuando la base de datos lo recibe, interpreta que estoy enviando dos parámetros, ya que el valor (12.358.245,56) esta separado por una ",". El campo en la base de datos esta definido como FLOAT.

Estas son las líneas en mi sistema por si le son de ayuda:

"INSERT INTO T_Contrato ID_Contrato,ID_Licitacion,ID_Contratista,Tipo_Cont rato,Fecha_Contrato,Fecha_Inicio,Fecha_Fin,Monto_C ontrato)" & _
"VALUES (" & CInt(T_contrato.Text) & "," & CInt(T_licitacion.Text) & "," & CInt(T_contrat.Text) & ",'" & C_tcontrato.Text & "','" & Mask_f_contr.Text & "','" & Mask_inicio.Text & "','" & Mask_finaliz.Text & "'," & CDbl(Me.Mask_contrac.Text) & ")"

Estaré agradecida por su ayuda. Saludos.

Última edición por sealmaraz; 07/09/2006 a las 05:54 Razón: Un dato que podría ayudar a comprender mejor el problema
  #2 (permalink)  
Antiguo 07/09/2006, 08:38
Avatar de SeriketZu  
Fecha de Ingreso: septiembre-2006
Ubicación: Mendoza, Argentina
Mensajes: 78
Antigüedad: 17 años, 7 meses
Puntos: 0
Yo pienso que tendrías que buscar la manera de reemplazar 12.358.245,56 por 12358245.56 antes de enviar la consulta.
Tal vez esto lo puedas hacer asignando a un string la salida formateada de la variable del número.
  #3 (permalink)  
Antiguo 07/09/2006, 13:53
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Cierto. Ese es el problema. Y es un típico problema. Para programar lo primero que hay que hacer es cambiar la configuración regional de la coma por el punto. Y siempre antes de hacer inserts eliminar todas las comas

sealmaraz, Imaginate que en mi tabla tengo 3 campos float y tu insert dice 12.358.245,56

INSERT INTO Tabla VALUES(1246, 12358245.56, 353450)

Hasta allí todo bien... pero si uno de los campos tiene decimales y el separador es una coma

INSERT INTO Tabla VALUES(1246, 1.2358.245,56, 353450)

Lo que se va a tratar de insertar son 4 campos, cada uno separados por las comas

INSERT INTO Tabla VALUES(1246, 1.2358.245,56, 353450)

Cosa que estarías tratando de insertar un campo mas
  #4 (permalink)  
Antiguo 11/09/2006, 08:10
 
Fecha de Ingreso: septiembre-2006
Mensajes: 2
Antigüedad: 17 años, 7 meses
Puntos: 0
Ya esta!, lo solucione declarando la variable como double, luego la pase como " & str(vble) & " y la recibo en la base de datos como money.

Funciona Perfecto =), Muchas gracias a todos!!!!!!!!!!!
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 00:15.