ERRO: Dataset not in edit or insert mode
Olá a todos,
Tenho um formulário cujo nome é frmEscolaOrgao, onde é realizado o cadastro de escolas municipais. Neste formulário tenho um botão (btnAlterar) cujo código é o seguinte:
procedure TfrmEscolaOrgao.btnAlterarClick(Sender: TObject);
begin
dm_dadosSeduc.tbl_escolaOrgao.Edit;
btnNovo.Enabled:= False;
btnSalvar.Enabled:= True;
btnVoltar.Enabled:= False;
btnAlterar.Enabled:= False;
btnPesquisar.Enabled:= False;
btnCancelar.Enabled:= True;
btnExcluir.Enabled:= False;
btnImprimir.Enabled:= False;
dbINEP.Enabled:= True;
dbNomeEscola.Enabled:= True;
cbxLogradouro.Enabled:= True;
dbEndereco.Enabled:= True;
dbNumero.Enabled:= True;
dbComplemento.Enabled:= True;
dbBairro.Enabled:= True;
cbxCidade.Enabled:= True;
cbxUF.Enabled:= False;
dbCEP.Enabled:= True;
dbTelefone.Enabled:= True;
dbEmail.Enabled:= True;
rgpLocalizacao.Enabled:= True;
dbNumAlunos.Enabled:= True;
dbDataCadastro.Enabled:= True;
dbCadEscolar.Enabled:= True;
dbPortaria.Enabled:= True;
dbDataPortaria.Enabled:= True;
dbCNPJ.Enabled:= True;
rgpTipoInstituicao.Enabled:= True;
dbObservacoes.Enabled:= True;
dbMatDirecao.Enabled:= True;
cbxDiretor.Enabled:= True;
dbMatAdjunto.Enabled:= True;
cbxAdjunto.Enabled:= True;
dbMatSecretario.Enabled:=True;
cbxSecretario.Enabled:= True;
Foto.Enabled:= True;
carregarImagem.Enabled:= True;
end;Neste formulário (frmEscolaOrgao), tenho também o botão Salvar (btnSalvar), cujo código é o seguinte:
procedure TfrmEscolaOrgao.btnSalvarClick(Sender: TObject);
begin
if dm_dadosSeduc.tbl_escolaOrgao.State in [dsEdit]
then
begin
if (MessageDlg('DESEJA SALVAR AS ALTERAÇÕES NO REGISTRO ATUAL?', mtConfirmation, [mbYes,mbNo],0) = mrYes)
then
begin
dm_dadosSeduc.tbl_escolaOrgao.Post;
btnNovo.Enabled:= True;
btnSalvar.Enabled:= False;
btnVoltar.Enabled:= True;
btnAvancar.Enabled:= True;
btnAlterar.Enabled:= True;
btnPesquisar.Enabled:= True;
btnCancelar.Enabled:=False;
btnExcluir.Enabled:= True;
btnImprimir.Enabled:= True;
dbINEP.Enabled:= False;
dbNomeEscola.Enabled:= False;
cbxLogradouro.Enabled:= False;
dbEndereco.Enabled:= False;
dbNumero.Enabled:= False;
dbComplemento.Enabled:= False;
dbBairro.Enabled:= False;
cbxCidade.Enabled:= False;
cbxUF.Enabled:= False;
dbCEP.Enabled:= False;
dbTelefone.Enabled:= False;
dbEmail.Enabled:= False;
rgpLocalizacao.Enabled:= False;
dbNumAlunos.Enabled:= False;
dbDataCadastro.Enabled:= False;
dbCadEscolar.Enabled:= False;
dbPortaria.Enabled:= False;
dbDataPortaria.Enabled:= False;
dbCNPJ.Enabled:= False;
rgpTipoInstituicao.Enabled:= False;
dbObservacoes.Enabled:= False;
dbMatDirecao.Enabled:= False;
cbxDiretor.Enabled:= False;
dbMatAdjunto.Enabled:= False;
cbxAdjunto.Enabled:= False;
dbMatSecretario.Enabled:=False;
cbxSecretario.Enabled:= False;
Foto.Enabled:= False;
carregarImagem.Enabled:= False;
MessageDlg('ALTERAÇÕES SALVAS COM SUCESSO!', mtInformation,[mbOK],0);end
else
begin
dm_dadosSeduc.tbl_escolaOrgao.Cancel;
MessageDlg('AS ALTERAÇÕES NÃO FORAM SALVAS!', mtInformation,[mbOK],0);
end;end
else
begin
if ((dbINEP.Text <> '') and (dbNomeEscola.Text <> '') and (cbxLogradouro.Text <> '') and
(dbEndereco.Text <> '') and (dbNumero.Text <> '') and (dbComplemento.Text <> '') and
(dbBairro.Text <> '') and (cbxCidade.Text <> '') and (cbxUF.Text <> '') and
(dbCEP.Text <> '') and (rgpLocalizacao.ItemIndex <> -1) and (dbNumAlunos.Text <> '') and
(rgpTipoInstituicao.ItemIndex <> -1))
then
begin
dm_dadosSeduc.tbl_escolaOrgao.Post;
btnNovo.Enabled:= True;
btnSalvar.Enabled:= False;
btnVoltar.Enabled:= True;
btnAvancar.Enabled:= True;
btnAlterar.Enabled:= True;
btnPesquisar.Enabled:= True;
btnCancelar.Enabled:=False;
btnExcluir.Enabled:= True;
btnImprimir.Enabled:= True;
dbINEP.Enabled:= False;
dbNomeEscola.Enabled:= False;
cbxLogradouro.Enabled:= False;
dbEndereco.Enabled:= False;
dbNumero.Enabled:= False;
dbComplemento.Enabled:= False;
dbBairro.Enabled:= False;
cbxCidade.Enabled:= False;
cbxUF.Enabled:= False;
dbCEP.Enabled:= False;
dbTelefone.Enabled:= False;
dbEmail.Enabled:= False;
rgpLocalizacao.Enabled:= False;
dbNumAlunos.Enabled:= False;
dbDataCadastro.Enabled:= False;
dbCadEscolar.Enabled:= False;
dbPortaria.Enabled:= False;
dbDataPortaria.Enabled:= False;
dbCNPJ.Enabled:= False;
rgpTipoInstituicao.Enabled:= False;
dbObservacoes.Enabled:= False;
dbMatDirecao.Enabled:= False;
cbxDiretor.Enabled:= False;
dbMatAdjunto.Enabled:= False;
cbxAdjunto.Enabled:= False;
dbMatSecretario.Enabled:=False;
cbxSecretario.Enabled:= False;
Foto.Enabled:= False;
carregarImagem.Enabled:= False;
MessageDlg('ESCOLA OU ÓRGÃO CADASTRADO(A) COM SUCESSO!',mtInformation,[mbOK],0);end
else
begin
MessageDlg('ERRO AO CADASTRAR: CAMPO OBRIGATÓRIO NÃO PREENCHIDO!', mtError,[mbOK],0);
end;
end;
end;O problema é o seguinte, quando clico no botão Alterar e realizo alguma alteração em qualquer campo desse formulário (com exceção dos campos Diretor, Diretor Adjunto e Secretário) e clico no botão Salvar tudo ocorre bem. No entanto, quando essa alteração é em um dos campos Diretor, Diretor Adjunto ou Secretário, então aparece o seguinte erro:
"**Project SeducLi.exe raised exception class EDatabaseError with
message 'tbl_escolaOrgao: Dataset not in edit or insert mode'.
Process stopped. Use Step or Run to continue.**"
Alguém já passou por uma experiência semelhante? Como resolver?
Discussão (1)
Carregando comentários...