Ver Mensaje Individual
  #2  
Antiguo 05-03-2010
_cero_ _cero_ is offline
Miembro
 
Registrado: abr 2007
Posts: 147
Reputación: 20
_cero_ Va por buen camino
Thumbs up

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.
Responder Con Cita