Me respondo a mí mismo, pero de seguro servirá para toda la gente que se pase a XE5.
Con el componente TFDQuery de los FireDAC la cosa se soluciona, de la siguiente manera:
Estoy en Firebird 2.1
En este caso hice un Insert y le pedí que me devolviera la clave primaria a través del Returning...
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
FDConnection1.Connected:=true;
with FDQuery1 do
begin
close;
sql.clear;
sql.add('Insert Into det_recibos (cod_rec, renglon_det, cod_fact, monto_rec) ');
SQL.Add('Select :codigo, :renglon, :codigo_factura, :monto ');
SQL.Add('From rdb$database ');
sql.Add('Returning cod_rec ');
ParamByName('codigo').AsInteger:=3;
ParamByName('renglon').AsInteger:=1;
ParamByName('codigo_factura').AsInteger:=1;
ParamByName('monto').AsFloat:=1000.98;
try
Open();
edit1.Text:=FDQuery1.FieldByName('cod_rec').AsString;
FDConnection1.Commit;
Application.MessageBox(PWideChar('Lo hice'), PWideChar(self.Caption),
MB_OK + MB_ICONINFORMATION);
except
on e:Exception do
begin
FDConnection1.Rollback;
Application.MessageBox(PWideChar('Falló'), PWideChar(self.Caption),
MB_OK + MB_ICONERROR);
end;
end;
end;
end;