update table does not have pk or row identifier oque está acontecendo?

Delphi

Banco de Dados

23/03/2017

Após tentar fazer um post está ocorrendo este erro oque seria ?
 while (FDQUERY1.Eof <> True) do begin

               fdbusca.Active := false;
               fdbusca.sql.text := 'select ID,PACIENTE,DATA,TEXTO from '+tabela1.text+' where id='+FDQUERY1.FieldByName('ID').AsString;
               fdbusca.Active := true;

               qSqlInsere.Active := false;
               qSqlInsere.sql.text := 'select * from '+tabela2.text;
               qSqlInsere.Active := true;

               DSINSERIR.DataSet.Edit;
               DsINSERIR.DataSet.FieldByName('ID').Value := fdbusca.FieldByName('ID').Value;
               DsINSERIR.DataSet.FieldByName('CODCLI').Value:= fdbusca.FieldByName('PACIENTE').Value;
               DsINSERIR.DataSet.FieldByName('DATAREGISTRO').Value:= fdbusca.FieldByName('DATA').Value;
               DsINSERIR.DataSet.FieldByName('ANOTACAO').ASSTRING:= fdbusca.FieldByName('TEXTO').AsString;
               virgula1 := ',';

                 
                DSINSERIR.DataSet.Post;
                fdquery1.Next;
Rodrigo Oliveira

Rodrigo Oliveira

Curtidas 0

Respostas

Jones Granatyr

Jones Granatyr

23/03/2017

Opa! A mensagem de erro está indicando que sua tabela está sem uma chave primária definida. Chegou a verificar isso?
GOSTEI 0
Pedro Deola

Pedro Deola

23/03/2017

Boa noite.

Para o caso de mais alguém chegar a este tópico, vou deixar duas soluções que me ajudaram.

1) No componente da tabela, procure a propriedade IndexFieldNames e adicione a coluna que é a chave da sua tabela.
2) Pode ser que você esteja tentando salvar um campo required sem valor. No meu caso era isso o problema, apenas desmarquei esta opção.

Espero ter ajudado alguém.
GOSTEI 0
POSTAR