Ver Mensaje Individual
  #1  
Antiguo 02-03-2010
Bare Bare is offline
Miembro
 
Registrado: feb 2010
Posts: 29
Reputación: 0
Bare Va por buen camino
Sugerencias?...

Hola amigos, me tope con un problema,veran..

en mi aplicacion, necesito insertar unos datos en una tabla con el update, eso me funcionaba cuando le escribia unos numeros, pero ahora, se tiene que insertar el resultado que se obtenga de una serie de operaciones antes, esas si se hacen bien, el problema es cuando quiero actualizar me da este error:

"error converting data type varchar to float"

los datos de la tabla estan en float..aunque creoo que ya se donde esta mi error..

despues de hacer las operaciones, esto es lo que tengo:


Código:


//--------------------------------------------------------------------
//-------------ACTUALIZAR  DATOS---------------------------------
AnsiString parametro,parametro2,parametro3,ID1,P1,ID2,P2,ID3,P3,ID4,IDG;
ADODataSet2->Close();//primero cierro el componente para volver a cargarlo


 parametro = ComboBox1->Text; //ANIO
 parametro3 = ComboBox3->Text; //LOCALIDAD


 ID1 = DBEdit3->Text.ToDouble();     //ANIO
 P1 = DBEdit4->Text.ToDouble();    //TRIMESTRE
 ID2 = DBEdit7->Text.ToDouble();    //LOCALIDAD
 P2 = DBEdit8->Text.ToDouble(); //ANO
 ID3 = DBEdit11->Text.ToDouble();//LOCALIDAD
 P3 = DBEdit15->Text.ToDouble(); //ANUAL
 ID4 = DBEdit14->Text.ToDouble(); //CASOS
 IDG = DBEdit16->Text.ToDouble();


 ADODataSet2->CommandText = "  UPDATE DiabetesMellitus_AnualMunicipios  SET ID_Control = '"+ID1+"', P_Control = '"+P1+"',ID_Informacion = '"+ID2+"',P_Informacion = '"+P2+"', ID_Promocion1 = '"+ID3+"', P_Promocion ='"+P3+"', ID_Promocion2 = '"+ID4+"',ID_General = '"+IDG+"'  where Año = '"+parametro+"' AND Localidad = '"+parametro3+"'SELECT * FROM DiabetesMellitus_AnualMunicipios";


       ADODataSet2->Open();//Aca abres la vista....

  Tabla_DiabetesAnual->Close();
Tabla_DiabetesAnual->Open();


  ShowMessage("LISTO");
yo pienso que mi error esta en que los datos ID,P,...etc, los tengo como AnsiString, y al querer insertarlos me da el error, porque el resultado de las operaciones es con decimales (29.334498760123).
Quise corregirlo declarandolo como float, pero me marcaba varios errores..


aqui les dejo una imagen del programa:



los resultados con todos los decimales son los que quiero insertar en la tabla..


creo que el error es porque quiero insertar los datos con decimal a una tabla donde esta definido como float..que podre hacer?, cambiar el tipo de dato en la tabla?, o hacer algo en codigo?



de antemano agradezco su atencion..


un saludo..

Última edición por Bare fecha: 02-03-2010 a las 06:32:00.
Responder Con Cita