Delphi erro: unable find record no key specified no comando dm2.CDSEstrutVis.ApplyUpdates(-1);

17/08/2017

0

Boa tarde,
Meu ambiente e' Delphi XE6 / DBX / MYSQL 5.6. Uso os componentes para acessar o banco de dados:TSQLCONNECTION, TSQLDATASET, TDATASETPROVIDER, TCLIENTDATASET e TDATASOURCE.
Pois bem, estou enfrentando o erro: "unable find record no key specified" quando tento excluir registros de uma tabela, no comando "dm2.CDSEstrutVis.ApplyUpdates(-1);". No ambiente Delphi 7 / DBX / MYSQL 5.6, funciona normalmente. Agora, estou migrando para o novo ambiente Delphi XE6... mas erro apareceu.
A rotina que uso e' essa:
.
.
.
dm2.cdsestrutvis.Close;
dm2.CDSEstrutVis.Open;
dm2.CDSEstrutVis.First;

while dm2.CDSEstrutVis.eof = false do
begin
dm2.CDSEstrutVis.Delete;
dm2.CDSEstrutVis.First;
end;
dm2.CDSEstrutVis.ApplyUpdates(-1); // <---- aqui apresenta o erro.

O mais curioso e' que uso o comando Delete para outras tabelas dando em seguida o applyUpdates(-1) e funciona normalmente.
Ja' alterei o UpdateMode do TDataSetProvider para upWhereKeyOnly, inclusive do campo chave e o erro persiste.
Ja' li tudo na internet sobre o tema, inclusive no link: https://stackoverflow.com/questions/10122073/dbexpress-no-key-specified

Se alguem puder me ajudar, agradeco muito.
Obrigado,
Airton
Airton Santos

Airton Santos

Responder

Posts

19/09/2017

Everton Santos

bom dia esse erro costuma dar quando vc no ProviderFlags do clientDataset não indicou nenhuma chave (key) ;
Responder

19/09/2017

Everton Santos

vc tem muitos filhos ligados ao cds mestre ?

tira a ligacao dos filhos e ve se grava o pai aí vai ligando filho a filho e gravando que vc vai ver exatamente em que tabela da esse erro
descobrindo vc apaga o CLIENTDATASET e cria ele de novo do zero
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar