Hazlo así y me cuentas si te funciona.....
Código Delphi
[-]
procedure TFBusqueda.Button2Click(Sender: TObject);
begin
IBQ1.Close;
IBQ1.Active;
IBQ1.SQL.Add('SELECT * FROM FAMILIA WHERE IDENTIFICACION=:NIT');
IBQ1.ParambyName('NIT').AsInteger:=StrtoInt(Edit1.Text);
IBQ1.Open;
IBQ1.ExecSQL;
if (IBQ1.IsEmpty) then
begin
Application.MessageBox('No se encuentra el registro buscado','Mensaje de Busqueda',0);
IBQ1.Close;
end
else begin
Edit2.Text:=inttostr(IBQ1.FieldByName('IDENTIFICACION').AsInteger);
Edit3.Text:=IBQ1.FieldByName('NOMBRE').AsString;
Edit4.Text:=IBQ1.FieldByName('APELLIDOUNO').AsString;
Edit5.Text:=IBQ1.FieldByName('APELLIDODOS').AsString;
Edit1.Text:='';
Edit1.SetFocus;
IBQ1.Close;
end;
Descripción de las siguientes instrucciones:
IBQ1.SQL.Add('SELECT * FROM FAMILIA WHERE IDENTIFICACION=:NIT');
:NIT (Es la forma en que se pasa un parámetro a un script SQL.
IBQ1.ParambyName('NIT').AsInteger:=StrtoInt(Edit1.Text);
En este punto es donde se pasa el valor al parámetro, y como el campo 'IDENTIFICACION' está definido como INTEGER, pués así es la forma, y claro, debemos hacer un cast a tu Edit1.Tex, es decir, convertirlo en entero.
Y por último :
if (IBQ1.IsEmpty) then
Se está preguntando que si la consulta anterior es vacía, en tal caso muestras tu mensaje o de lo contrario das de alta tu nuevo registro.
Un caluroso saludo..