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

(Resolvido) erro ao tentar salvar cadastro


Ronaldo Lanhellas

Pergunta

Bom , ao tentar salvar um cadastro aparece um erro dizendo que o chaveid (uma tabela do meu banco de dados firebird com PK) deve ter um valor, com se não estivesse gerando automaticamente seu ID, porém eu criei o GENERATOR e a TRIGGER dele normal. qual pode ser o problema então ?

fui até o banco de dados para testar se o generator ta funcionando, e ele gerou o ID do chaveid automaticamente ao criar um novo campo, creiu eu que o problema esteja no delphi, porém não tenho certeza, aguardo a ajuda de vocês;

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0
fui até o banco de dados para testar se o generator ta funcionando, e ele gerou o ID do chaveid automaticamente ao criar um novo campo, creio eu que o problema esteja no delphi, porém não tenho certeza, aguardo a ajuda de vocês;

procedure TfrmModelo.ac_salvarExecute(Sender: TObject);
begin
   TClientDataSet(Ds.DataSet).Post;
   TClientDataSet(Ds.DataSet).ApplyUpdates(-1);
   Pagecontrol1.ActivePage := tbConsulta;
end;

O problema não é quando voce salva, mas quando da o insert

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
poderia porfavor me explicar a função do POST e do -1 no ApplyUpdates ?
TClientDataSet(Ds.DataSet).Post;
O comando Post é usado para escrever ( salvar ) um registro modificado no banco de dados.
TClientDataSet(Ds.DataSet).ApplyUpdates(-1);
Envia todos os updates ( registros ) atualizados, inseridos e deletados do dataset cliente para o provedor para atualizar ao banco de dados. Porque o -1 ? Veja a função:
function ApplyUpdates(MaxErrors: Integer); Integer; virtual;

o -1 é o numero colocado para o numero maximo de erros, é usado para ignorar os erros e continuar sem parar a execução do programa ... entretanto existem outros procedimentos para tratar esses erros.

gostaria de saber o porque do problema esta no insert

quando voce tem um campo autoincremento e dá o comando insert, automaticamente o campo usado como autoincremento recebe o proximo numero da lista, então neste caso não é necessario voce atribuir qualquer valor a ele .... se fizer isso ele não grava valor nenhum, o que é feito pelo post e o applyupdates.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

bom, coloquei o código que voce me informou no Salvar porém o erro continua, veja só o erro mais detalhadamente

http://uploaddeimagens.com.br/imagem/index..._delphi2010.png

obs: eu não estou usando o campo "chavesid" que tem autoincremento no preenchimento do meu form, isto é, ele deveria estar se autoincrementando sozinho.

Link para o comentário
Compartilhar em outros sites

  • 0

O erro reporta que o campo Chavesid deve ter um valor, ou seja, o autoincremento não esta funcionando como deveria.

sugestão: delete o campo da tabela no banco de dados e refaça o procedimento para inclui-lo novamente, definindo o generator e a trigger novamente.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Oppa Ronaldo tb tive esse mesmo erro!

no meu caso o erro era no delphi com o CAMPO! ID

No component CLIENDDATASET

adicione todos os campos

depois va na propriedade "ProviderFlags" e desmarque pfInUpdate

e na propriedade "Required" deixe em false;

dai quando você for salvar seus dados o campo ID não sera mais obrigatorio!

Isso no meu caso que o problema foi no Delphi e não no BANCO

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...