que tal cero, le puse el codigo y no dio errores, pero al ejecutarlo me decia que no encontraba el parametro 3:
aqui te dejo el codigo, para ver si le encuentras algun anomalidad..
Código:
String parametro,parametro2,parametro3;
double ID1,P1,ID2,P2,ID3,P3,ID4,IDG;
ADODataSet2->Close();
parametro = ComboBox1->Text;
parametro3 = ComboBox3->Text;
double numm=0;
TryStrToFloat(DBEdit3->Text, numm); //sugiero aser esto para evitar errores cuando el edit este vacio por ejemplo D1 = numm;
//aunque esta forma rtambien es valida
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" //tambien se puede pero lo veo mas confuso y/o desordenado
" 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->Parameters->ParamByName("ID1")->Value=ID1;
ADODataSet2->Parameters->ParamByName("P1")->Value=P1;
ADODataSet2->Parameters->ParamByName("ID2")->Value=ID2;
ADODataSet2->Parameters->ParamByName("P2")->Value=P2;
ADODataSet2->Parameters->ParamByName("ID3")->Value=ID3;
ADODataSet2->Parameters->ParamByName("P3")->Value=P3;
ADODataSet2->Parameters->ParamByName("ID4")->Value=ID4;
ADODataSet2->Parameters->ParamByName("IDG")->Value=IDG;
ADODataSet2->Parameters->ParamByName("parametro")->Value=parametro;
ADODataSet2->Parameters->ParamByName("parametro3")->Value=parametro3;
ADODataSet2->Open();
Tabla_DiabetesAnual->Close();
Tabla_DiabetesAnual->Open();
ShowMessage("LISTO");
Saludos.