a linha nao pode ser localizada para atualizacao

04/01/2006

0

a linha nao pode ser localizada para atualizacao. alguns valores podem ter sido alterados desde que ela foi lida pela ultima vez ...

pq da esse erro???
como evita-lo???

estou usando os seguintes comandos ...

tabela.append para colocar a tabela em estado de insercao ...
tabela.post para postar os dados que estao em modo de insercao ...

logo apos esse comando creio que a tabela entra em State dsBrowse certo???

se eu fizer alguma modificacao e tenntar postar vai dar erro ...
tentei resolver da seguinte forma

with tabela do
begin
  if state = dsBrowse then Edit;
end;

post;


sei la, deem uma força ai please!!


Fernando_cunha

Fernando_cunha

Responder

Posts

05/01/2006

Martins

como configuro os providers flags em tempo de execucao?? []s


Não me lembro de ter mexido com isso antes, mas acho q se vc fizer assim deve funcionar.

  TabelaCampo.ProviderFlags:= [pfInUpdate,pfInWhere];



Só minha humilde opnião.

boa sorte


Responder

05/01/2006

Fernando_cunha

boa velhinhoooooo, vlwww
funcionou perfeitamente agora!!


abraçoss!


Responder

05/01/2006

Martins

boa velhinhoooooo, vlwww funcionou perfeitamente agora!! abraçoss!



Blz, quer dizer q agora está funcionando certinho né? Qualquer coisa posta aqui novamente.


Responder

05/01/2006

Fernando_cunha

funciono sim, agradeço muito pela ajuda e atenção!!
vlwww


Responder

05/01/2006

Rafael Gomes

olá amigos,

continuo com o mesmo problema ...

estou usando adoquery, mesmo quando a tabela esta em modo de edicao e altero algo nos dbedits e mando postar da um erro

´a linha nao pode ser localizada para atualizacao. alguns valores podem ter sido alterados desde que ela foi lida pela ultima vez´

ah, o fernando_cunha ali emcima era eu ... é que eu usava o login de um colega aki do trabalho!!

to usando o seguinte codigo para setar os providers flags!!

procedure TFrmRE.ConfigProviderFlags;
var
  x: integer;
begin
  Dm.Qy1.FieldByName(´CodREInterno´).ProviderFlags:= [pfInUpdate, pfInWhere, pfInKey];
  for x:= 1 to Dm.Qy1.FieldCount - 1 do
    Dm.Qy1.Fields.Fields[x].ProviderFlags:= [pfInUpdate,pfInWhere];
end;



Responder

05/01/2006

Fernando_cunha

só para lembrar, estou usando ADO MySQL 5.0 ... e o ODBC para conexao!!!

[]ss


Responder

05/01/2006

Michael

O erro está nesta linha:

Dm.Qy1.Fields.Fields[x].ProviderFlags:= [pfInUpdate,pfInWhere];


Vc *não* deve setar os campos que não são chaves primárias para [b:a713982001]pfInWhere[/b:a713982001], pq desta forma vc instrui o [b:a713982001]DataSetProvider [/b:a713982001]a colocá-los na cláusula [b:a713982001]WHERE [/b:a713982001]de comandos SQL como [b:a713982001]INSERT[/b:a713982001] e [b:a713982001]UPDATE[/b:a713982001].

Veja uma explicação melhor disto [url=http://forum.devmedia.com.br/viewtopic.php?t=72291&highlight=&sid=af5d7acd15928edf1796aff6716b7066]neste outro post[/url].

[]´s


Responder

05/01/2006

Fernando_cunha

o campo que é chave primaria ficaria assim entao?

  Dm.Qy1.FieldByName(´CodREInterno´).ProviderFlags:= [pfInWhere, pfInKey];


e os demais campos!? como devem ficar??


continua dando o erro =/


Responder

06/01/2006

Fernando_cunha

up no topico ...

o erro persiste!!

:cry:


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar