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
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
Curtir tópico
+ 0
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
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
Clique aqui para fazer login e interagir na Comunidade :)