alemoraes Postado Abril 4, 2018 Denunciar Share Postado Abril 4, 2018 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: 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Abril 5, 2018 Denunciar Share Postado Abril 5, 2018 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alemoraes Postado Abril 6, 2018 Autor Denunciar Share Postado Abril 6, 2018 Funcionou assim procedure TfrmPatrimonio.btnNovoClick(Sender: TObject); begin if not (dmDados.tblPatrimonio.State in [dsInsert, dsEdit]) then dmDados.tblPatrimonio.Insert; end; Obrigado Jhonas RESOLVIDO Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
alemoraes
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:
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
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.