Porque não funciona?
23/09/2004
0
cod integer, indice varchar, descricao blob(memo). Tudo funciona bem. Só que agora, eu preciso acrescentar na frente da descricão o valor do campo indice + o minus ´-´ e edepois a descricao a pedido da chefia. Fiz esta rotina abaixo:
While not Dm.Indi_old.Eof do begin
with Dm.Indice do begin
Close;
Sql.Clear;
Sql.Text:=´Update indice set descricao =:desc where posicao =:pos and c =:c´;
parambyname(´desc´).asstring:=Dm.indi_oldindice.asstring+´ - ´+Dm.indi_olddescricao.asstring;
parambyname(´pos´).AsString:=Dm.indi_oldposicao.value;
parambyname(´c´).Asinteger:=Dm.indi_oldC.value;
execsql;
close;
sql.Clear;
sql.Add(´select * from indice´);
open;
end;
Dm.indi_old.Next;
end;
Acontece que faz o que eu quero, só que não termina nunca, e por isso vai repetindo o indice assim, por exemplo:
Digamos
cod=1, indice=tinta,descricao=tinta de parede
deveria ficar assim:
cod=1, indice=tinta, descricao=tinta - tinta de parede
Está ficando assim:
cod=1, indice=tinta, descricao=tinta - tinta - tinta - tinta de parede
Se eu não terminar, vai colocando o indice até sei lá quando.
Obs: Toda está sendo preenchida. É como se ela fosse até o fim e não saisse do while, voltando o ponteiro da tabela para o primeiro registro e comessasse tudo de novo. Tenho certeza que é erro de lógica. Como mudar este código, para me dar o resultado esperado? Desde já, grato!
Paulo
Posts
23/09/2004
Mago M3rl1n
Update Tabela Set Desc = Indice + ´-´ + Desc
23/09/2004
Paulo
23/09/2004
Mago M3rl1n
Clique aqui para fazer login e interagir na Comunidade :)