Como hacer correctamente, si enredar innecesariamente el código con sentencias que sobran.
Como dispongo de un formulario de entrada de datos, si en este hay dos RadioButtons "hombre" y "mujer"
Preparo los datos para grabarlos:
procedure TForm3.BitBtn1Click(Sender: TObject); begin ZQuery2.SQL.Text := 'INSERT INTO "personas" (nombre, edad, sexo) VALUES (:nombre, :edad, :sexo)'; ZQuery2.ParamByName('nombre').AsString:= form3.edit1.text; ZQuery2.ParamByName('edad').AsString:= StrToInt(form3.edit2.text); // Aquí viene el problema, ya que el usuario puede cambiar con un click entre los dos radiobutton // tantas veces antes de grabarse en la base de datos ZQuery2.ParamByName('sexo').AsString:= 'hombre' ó 'mujer' según radiobutton pulsado. Try ZQuery2.ExecSQL; except end; end; // Involuntariamente, lo pensé resolver de esta manera, pero veo que no me sirve, ya que una vez // preparado todo los campos, estos al pulsar BitBtn1Click se graban en la base de datos. Pero me // da error en base de datos. If (form3.RadioButton1.checked) then begin ZQuery2.ParamByName('sexo').AsString:='hombre'; form3.RadioButton2.checked:=FALSE; else begin ZQuery2.ParamByName('sexo').AsString:='No'; form3.RadioButton1.checked:=FALSE; end;
Pienso que debo usar los eventos "OnClick" de los radiobutton para cargar el Zquery2.ParamByName('sexo') según sea el radiobutton pulsado, o quizás hay alguna opción más "limpia" y rápida.
Un saludo