Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Como atualizar e inserir registros utilizando o LoadFromJson #239

Open
UnisystemGIT opened this issue Jun 26, 2024 · 0 comments
Open

Como atualizar e inserir registros utilizando o LoadFromJson #239

UnisystemGIT opened this issue Jun 26, 2024 · 0 comments

Comments

@UnisystemGIT
Copy link

Problema: Estou tentando inserir registros novos e alterar registro existente quando já existe na tabela. Segundo a documentação (imagem abaixo) eu posso passar o atributo "object_state": "MODIFIED" no JSON que será responsável para alterar os registros ao utilizar o LoadFromJson

  • Utilizando o Banco de Dados Oracle

Utilizando a documentação como exemplo:
image

Meu JSON de teste:
[ { "object_state": "MODIFIED", "seqPlaCliente": "7297455801", "nomeCliente": "Usuario 01", "clientesenderecos": [ { "seqPlaEndereco": "7297455901", "seqPlaCliente": "7297455801", "descEndereco": "RUA TESTE 01" }, { "seqPlaEndereco": "7297456001", "seqPlaCliente": "7297455801", "descEndereco": "RUA TESTE 02" }, { "seqPlaEndereco": "7297456101", "seqPlaCliente": "7297455801", "descEndereco": "RUA TESTE 03" } ] } ]

Ao clicar no botão "LoadFromJson" ele executa o seguinte código abaixo
image

  • Estou utilizando o Master source para fazer a ligação entre os Clientes e Endereços
  • Após carregar os dados da imagem acima, ele exibe minha aplicação

image

Olhando no código da unit DataSet.Serialize.Import, verifiquei que ele olha o KeyFields e ProviderFlags da query (não estava descrito na documentação).
Fiz as configurações nas duas queries, informando quais são as chaves primarias de cada tabela respectivamente
image

Por fim, ao clicar no botão "Gravar Banco" ele executa o seguinte código abaixo
image

Caso todos os registros da query sejam novos, ele está inserindo corretamente. Contudo, caso tenha qualquer alteração ele não altera e gera um erro no "CommitUpdates" indicando um erro do oracle de chave primaria já utilizada. Logo, ele não está funcionando para alterações

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant