Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Seguinte, desenvolvi uma apliação que para preencher uma tabela preciso de um campo empresa,e durante o preenchimento dos campos no programa não faço a validação se a empresa está cadastrada, deixei para fazer isso no evento before post da query, acontece que com o código abaixo quando executa o camando abort, gera o erro "Cannot perform this operation on a closed dataset". Alguem pode me ajudar ? Segue o exemplo do evento before post do componente IBQuery:
CODE
procedure TF_ApontamentoHoras.IBQ_ApontamentoBeforePost(DataSet: TDataSet);
begin
with TIBQuery.Create(nil) do
begin
Database := F_MenuPrincipal.IBDatabase1;
SQL.Add('select idempresa from empresa where codigoEmpresa = :codigo_empresa');
ParamByName('codigo_empresa').AsFloat := IBQ_Apontamento.FieldByName('CODIGOEMPRESA').AsFloat;
Open;
if not(IsEmpty) then
begin
IBQ_Apontamento.FieldByName('ID_EMPRESA').AsString := Fields[0].AsString;
end
else
begin
MessageDlg('A empresa informada não está cadastrada!',mtError,[mbOK],0);
F_ApontamentoHorasDetalhe.DBEdit5.SetFocus;
Abort;
end;
Free;
end;
E notei que toda transação que realizo, tenho que abrir e fechar a query, pq se tento inserir um novo registro logo após um post gera o mesmo erro.
Grato desde já!
Carregando comentários...