While o que esta errado Tá dificl
o problema é o while naum tá fazendo efeito nenhum aqui pq , a condição if esta certa se eu desabilitar o while o IF funciona , porém naum muda de registro com next .. o que fazer ?
while not qrgridfrete.eof do
begin
if (strtoint(txtpeso.Text) >= (qrgridfrete.FieldByName(´faixa_inicial´)).Value) and (strtoint(txtpeso.Text) <= (qrgridfrete.FieldByName(´faixa_final´)).Value) then
begin
txtfaixavalorfrete.Text := qrgridfrete.FieldByName(´valor´).AsString;
end
else
begin
qrgridfrete.Next;
end
end;
end;
while not qrgridfrete.eof do
begin
if (strtoint(txtpeso.Text) >= (qrgridfrete.FieldByName(´faixa_inicial´)).Value) and (strtoint(txtpeso.Text) <= (qrgridfrete.FieldByName(´faixa_final´)).Value) then
begin
txtfaixavalorfrete.Text := qrgridfrete.FieldByName(´valor´).AsString;
end
else
begin
qrgridfrete.Next;
end
end;
end;
Anonymous
Curtidas 0
Respostas
Anonymous
26/02/2003
Mudei o procedimento v^c funciona agora...
qrgridfrete.First;
while not qrgridfrete.eof do
begin
if (strtoint(txtpeso.Text) >= (qrgridfrete.FieldByName(´faixa_inicial´).Value)) and (strtoint(txtpeso.Text) <= (qrgridfrete.FieldByName(´faixa_final´).Value)) then
begin
txtfaixavalorfrete.Text := qrgridfrete.FieldByName(´valor´).AsString;
qrgridfrete.Next; // aki tb precisa do Next
end ;
else
begin
qrgridfrete.Next;
end
end;
end;
vê c funciona dinovo
qrgridfrete.First;
while not qrgridfrete.eof do
begin
if (strtoint(txtpeso.Text) >= (qrgridfrete.FieldByName(´faixa_inicial´).Value)) and (strtoint(txtpeso.Text) <= (qrgridfrete.FieldByName(´faixa_final´).Value)) then
begin
txtfaixavalorfrete.Text := qrgridfrete.FieldByName(´valor´).AsString;
qrgridfrete.Next; // aki tb precisa do Next
end ;
else
begin
qrgridfrete.Next;
end
end;
end;
vê c funciona dinovo
GOSTEI 0
Anonymous
26/02/2003
tente assim:
qrgridfrete.first;
while not qrgridfrete.eof do
begin
if (strtoint(txtpeso.Text) >= (qrgridfrete.FieldByName(´faixa_inicial´)).Value) and (strtoint(txtpeso.Text) <= (qrgridfrete.FieldByName(´faixa_final´)).Value) then
txtfaixavalorfrete.Text := qrgridfrete.FieldByName(´valor´).AsString;
qrgridfrete.Next;
end;
no seu caso o next ta tabela tem que sempre acontecer senão o While vai entrar em um Loop eterno...
Falou.
Leandro
ICQ 128124370
qrgridfrete.first;
while not qrgridfrete.eof do
begin
if (strtoint(txtpeso.Text) >= (qrgridfrete.FieldByName(´faixa_inicial´)).Value) and (strtoint(txtpeso.Text) <= (qrgridfrete.FieldByName(´faixa_final´)).Value) then
txtfaixavalorfrete.Text := qrgridfrete.FieldByName(´valor´).AsString;
qrgridfrete.Next;
end;
no seu caso o next ta tabela tem que sempre acontecer senão o While vai entrar em um Loop eterno...
Falou.
Leandro
ICQ 128124370
GOSTEI 0
Anonymous
26/02/2003
O seu problema, é que quando vc entra no IF, acaba entrando em um loop infinito... Vc deve utilizar o next mesmo quando o IF for positivo, para com isso ler até o fim da tabela e satisfazer a condição do while, ou então sair do laço do while quando o if for positivo...
Espero ter ajudado...
:wink:
Espero ter ajudado...
:wink:
GOSTEI 0
Anonymous
26/02/2003
Primeiro, a identação precisa ser melhorada.
olha só o código abaixo:
while not qrgridfrete.eof do begin
if (strtoint(txtpeso.Text) >= (qrgridfrete.FieldByName(´faixa_inicial´).Value) and
(strtoint(txtpeso.Text) <= (qrgridfrete.FieldByName(´faixa_final´).Value) then
txtfaixavalorfrete.Text := qrgridfrete.FieldByName(´valor´).AsString
else
qrgridfrete.Next;
end;
Segundo, a propriedade fieldByName estava sendo utilizada errada.
verifique que você colocou dois parenteses para fechá-la.
Terceiro, este if nunca será verdadeiro
Não se compara Text com Value. (apesar de Value ser variant ele vem truncado sem os ´0´, o que faz diferença na hora de comparar)
Quarto, utilize FieldByName(´´).AsString;
Valeu.
olha só o código abaixo:
while not qrgridfrete.eof do begin
if (strtoint(txtpeso.Text) >= (qrgridfrete.FieldByName(´faixa_inicial´).Value) and
(strtoint(txtpeso.Text) <= (qrgridfrete.FieldByName(´faixa_final´).Value) then
txtfaixavalorfrete.Text := qrgridfrete.FieldByName(´valor´).AsString
else
qrgridfrete.Next;
end;
Segundo, a propriedade fieldByName estava sendo utilizada errada.
verifique que você colocou dois parenteses para fechá-la.
Terceiro, este if nunca será verdadeiro
Não se compara Text com Value. (apesar de Value ser variant ele vem truncado sem os ´0´, o que faz diferença na hora de comparar)
Quarto, utilize FieldByName(´´).AsString;
Valeu.
GOSTEI 0