FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#1
|
|||
|
|||
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"); 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. |
#2
|
||||
|
||||
No muestras que tipo tienen las variables ID1, P1,ID2, P2, ID3, P3, ID4 y IDG.
En tu código se asume que son tipo double, si no es así, ese es el origen de tu error. Saludos. |
#3
|
|||
|
|||
lo de text.todouble se lo agregue recien para ver si por eso me marcaba el error, porque arriba estan definidos como ansistring.
ese error solo me lo da cuando quiero meter datos con punto decimal, porque si le meto numeros enteros funciona bien.. no se porque me lo marque,la tabla donde se insertan los datos esta definida como tipo float..... no entiendo muy bien lo de las variables, las defino como double? o que puedo hacer?... Saludos.. |
#4
|
||||
|
||||
Cita:
Código:
double ID1 = DBEdit3->Text.ToDouble(); //ANIO Saludos. |
#5
|
|||
|
|||
que tal escafandra, ya lo defini como double, pero me marca este error:
"Ilegal use of floating point". el codigo quedo asi: Código:
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 double ID1 = DBEdit3->Text.ToDouble(); //ANIO double P1 = DBEdit4->Text.ToDouble(); //TRIMESTRE double ID2 = DBEdit7->Text.ToDouble(); //LOCALIDAD double P2 = DBEdit8->Text.ToDouble(); //ANO double ID3 = DBEdit11->Text.ToDouble();//LOCALIDAD double P3 = DBEdit15->Text.ToDouble(); //ANUAL double ID4 = DBEdit14->Text.ToDouble(); //CASOS double 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.... // ADODataSet5->Refresh(); Tabla_DiabetesAnual->Close(); Tabla_DiabetesAnual->Open(); el error me lo marca aqui...'"+ID1+"', como ahora es de tipo double no se puede usar asi, como se escribe para asignarle esa variable en el campo de la tabla? y fijate que no me habia fijado eso que mencionabas del separador decimal, yo pensaba que era punto y no es asi..., ..es coma, eso se lo puedo cambiar en builder? o tengo que modificar algo en el sistema?, o se puede dejar asi y meterlo en la tabla de sql? Saludos |
#6
|
||||
|
||||
¿Que tipo de separador decimal usas?
Mira este ejemplo: Esto funciona: Código:
DecimalSeparator = ','; double d = String("1,2").ToDouble(); Código:
DecimalSeparator = '.'; double d = String("1,2").ToDouble(); Saludos. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Sugerencias a CodeGear / Embarcadero | AngelV | Noticias | 73 | 05-08-2014 19:40:41 |
necesito sugerencias | felixgo | Firebird e Interbase | 7 | 13-03-2007 15:06:40 |
Sugerencias con las INDY | diegofhernando | Internet | 2 | 09-01-2006 21:06:15 |
Necesito sugerencias | BetoAlonso | Internet | 5 | 18-10-2005 22:52:53 |
|