problema ao fazer um While
Olá, estou com um probleminha q é o seguinte, tenho um botão no meu pedido q qdo clicado, ele coloca todos os itens q estão em um DBGrid do pedido com um S ´sim´, q quer dizer q estão pagos, qdo é mais de um item ele fica meio perdido, não sei se é porque estou dando um post na tabela, já tentei criar outra para fazer o while e deixar a que eu quero alterar só p/alteração e não quer dar certo, está assim:
////
TbItens.First;
While Not TbItens.eof do
begin
if TbItensPago.Value = ´N´ then
begin
TbItens.Edit;
TbItensPago.Value:=´S´;
If TbItensInicio.Value = True then
TbItensDataHoraFim.Value:=WHora;
TbItens.Post;
end;
end;
TbItens.Next;
end;
Se alguém puder me ajudar eu agradeço, pois já tentei muito.
////
TbItens.First;
While Not TbItens.eof do
begin
if TbItensPago.Value = ´N´ then
begin
TbItens.Edit;
TbItensPago.Value:=´S´;
If TbItensInicio.Value = True then
TbItensDataHoraFim.Value:=WHora;
TbItens.Post;
end;
end;
TbItens.Next;
end;
Se alguém puder me ajudar eu agradeço, pois já tentei muito.
Janete
Curtidas 0
Respostas
Poeta Noturno
15/02/2003
Bom, eu realmente naum entendi muito bem o que vc queria, se puder ser mais clara...
Ou se preferir, me mande um e-mail, ok?
Um abraço
Poeta Noturno
Ou se preferir, me mande um e-mail, ok?
Um abraço
Poeta Noturno
GOSTEI 0
Anonymous
15/02/2003
Pelo que vi seu código está correto, tente usar este código, é a mesma coisa, mas as vezes o delphi nos impressiona...
with TbItens do
begin
First;
While Not eof do
begin
if FieldByName(´Pago´).Value = ´N´ then
begin
Edit;
FieldByName(´Pago´).Value:=´S´;
If FieldByName(´Inicio´).Value = True then
TbItensDataHoraFim.Value:=WHora;
TbItens.Post;
end;
Next;
end;
end;
se tentar e der certo ou não me mande um e-mail vamos ver o que pode ser ok??? xixico@pop.com.br
with TbItens do
begin
First;
While Not eof do
begin
if FieldByName(´Pago´).Value = ´N´ then
begin
Edit;
FieldByName(´Pago´).Value:=´S´;
If FieldByName(´Inicio´).Value = True then
TbItensDataHoraFim.Value:=WHora;
TbItens.Post;
end;
Next;
end;
end;
se tentar e der certo ou não me mande um e-mail vamos ver o que pode ser ok??? xixico@pop.com.br
GOSTEI 0
Anonymous
15/02/2003
TbItens.First;
while not TbItens.EOF do
begin
if TbItensPago.Value = ´N´ then
begin
TbItens.Edit;
if TbItensInicio.Value = True then
TbItensDataHoraFim.Value := WHora;
TbItens.Post;
TbItensPago.Edit;
TbItensPago.Value := ´S´;
TbItensPago.Post;
end;
TbItens.Next;
end;
while not TbItens.EOF do
begin
if TbItensPago.Value = ´N´ then
begin
TbItens.Edit;
if TbItensInicio.Value = True then
TbItensDataHoraFim.Value := WHora;
TbItens.Post;
TbItensPago.Edit;
TbItensPago.Value := ´S´;
TbItensPago.Post;
end;
TbItens.Next;
end;
GOSTEI 0
Magoo
15/02/2003
TbItens.First;
While Not TbItens.eof do
begin
if TbItensPago.Value = ´N´ then
begin
TbItens.Edit;
TbItensPago.Value:=´S´;
If TbItensInicio.Value = True then
TbItensDataHoraFim.Value:=WHora;
TbItens.Post;
end;//if TbItensPago . . .
end;//while not TbItens.eof . . .
[b:489d6e848a]TbItens.Next;[/b:489d6e848a]
end;
O problema do código é que você está usando o método [b:489d6e848a]Next[/b:489d6e848a] fora do laço While . . . por isso só dá certo quando vc tem apenas um registro no seu DbGrid . . .
While Not TbItens.eof do
begin
if TbItensPago.Value = ´N´ then
begin
TbItens.Edit;
TbItensPago.Value:=´S´;
If TbItensInicio.Value = True then
TbItensDataHoraFim.Value:=WHora;
TbItens.Post;
end;//if TbItensPago . . .
end;//while not TbItens.eof . . .
[b:489d6e848a]TbItens.Next;[/b:489d6e848a]
end;
O problema do código é que você está usando o método [b:489d6e848a]Next[/b:489d6e848a] fora do laço While . . . por isso só dá certo quando vc tem apenas um registro no seu DbGrid . . .
GOSTEI 0