Antes de nada tranquilo, no tienes que disculparte por nada, aquí estamos para servirnos unos a otros, molestia... pues bueno, tampoco he tenido que abrir una zanja con pico y pala.... así que no molesta mucho
.
Código Delphi
[-]
begin
ADOSPEdadCuentas.Close;
ADOSPEdadCuentas.Parameters.ParamByName('@Edad').Value := Strtoint(EditEdad2.Text);
if StrToIntdef(EditEdad2.Text, 0) = 90 then
ADOSPEdadCuentas.Parameters.ParamByName('@Edad1').Value := VarNull;
else
ADOSPEdadCuentas.Parameters.ParamByName('@Edad1').Value := Strtoint(EditEdad1.Text);
ADOSPEdadCuentas.Open;
end;
Lo primero es darle a un Variant el tipo de dato que necesita, si ya sabes que el parámetro es un Integer, dale un integer, si es un string, dale un string; porque el variant no es inteligente y lo que hará será convertir el valor (Value) a un tipo de datos string porque edit1.text es un string.
Lo segundo es usar StrToIntDef, ya que si el usuario deja en blanco el Edit, después saltará una excepción de tipo
'' no es un entero válido.
Espero que ahora funcione
Saludos