La razón del porque no te funciono, es que el parámetro que pusiste, no se llamaba “ID_Con”, si no ”ID1” ya que el nombre del parámetro es el que va después de “:” teniendo en cuenta tu código quedaría más o menos así:
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 = "+String(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("P1")->Value=P1;
ADODataSet2->Parameters->ParamByName("ID2")->Value=ID2;
ADODataSet2->Parameters->ParamByName("P2")->Value=P2;
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");
Pd. Maneja sabiamente la función “TryStrToFloat” ya que te devuelve un 0 si el valor que le proporcionas en el edit no es un decimal o entero, pero esto es como comerse un error y todos sabemos que hay que ser cuidados@s con el manejo de errores.