Ir para conteúdo
Fórum Script Brasil
  • 0

(Reolvido) Erro Dataset not in edit or insert mode


alemoraes

Pergunta

Trabalho com Delphi XE7 – Firedac e Banco de Dados Firebird 2.5

 

 

Tenho 02 tabelas:

    PROPRIETARIO (tabela pai)  - FDQueryProprietario (FDQuey)

                                                        updProprietario (FDUpdateSQL)

                                           propriedade UpdateObject = updProprietario

 

 

    PATRIMONIO (tabela filha) – FDQueryPatrimonio (FDQuery)

                                                        updPatrimonio (FDUpdateSQL)

                                       propriedade UpdateObject = updPatrimonio

 

 

Na FDQueryPatrimonio configurado o Master-Detail   

    MasterSource = dsProprietario

    MasterField = PRO_CODIGO

    IndexFieldNames = PAT_PROCODIGO

 

 

No formulário frmProprietario:

. Cadastrei todos os Proprietários na tabela PROPRIETARIOS

 

 

No formulário frmPatrimonio:

. ao cadastrar um Patrimonio eu clico no DBlookupProprietario,

seleciono o proprietário e clico no botão para inserir o patrimônio, mas quando tento digitar  nos campos aparece a mensagem:

image.png.656f2bb9b9bc97b6308b0d33b0067096.png

Código do Botão Inserir:

procedure TfrmPatrimonio.btnNovoClick(Sender: TObject);

begin

    if dmDados.tblPatrimonio.State in [dsInsert, dsEdit] then

    dmDados.tblPatrimonio.Insert;

end;

 

Quando abro o IBExpert mesmo gerando este erro, aparece gravado no banco de dados apenas a chave primária e a chave estrangeira.

O que pode ter acontecido? No banco de dados está tudo relacionado as tabelas. PK e FK

 

 

 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
procedure TfrmPatrimonio.btnNovoClick(Sender: TObject);
begin
   if dmDados.tblPatrimonio.State in [dsInsert, dsEdit] then
      dmDados.tblPatrimonio.Insert;
end;

experimente assim:

procedure TfrmPatrimonio.btnNovoClick(Sender: TObject);
begin
   if not dmDados.tblPatrimonio.State in [dsInsert, dsEdit] then
      dmDados.tblPatrimonio.Insert;
end;

ou assim:

procedure TfrmPatrimonio.btnNovoClick(Sender: TObject);
begin
    dmDados.tblPatrimonio.Insert;
end;

 

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...