Estou com um problema e não consigo resolver. E estou precisando disso com urgência. Provável que se eu não consiga antes do prazo resolver possa perder meu emprego.
É o seguinte, tenho um componente dtTemp do tipo TQuery. Tenho que percorrê-lo e atualizar todas todas a linhas. E eu também queria saber se tem alguma função pra eu ter um resultado da diferença no valor de meses entre duas datas.
SQL.Add('UPDATE tempTeste SET AnLote = :lote WHERE AnNumBrinco = :brinc');
ParamByName('brinc').AsString := brinco;
if (meses >= 0) AND (meses <=12) then
begin
ParamByName('lote').AsString := 'dose';
end
else if (meses > 12) AND (meses <= 24) then
begin
ParamByName('lote').AsString := 'vinte e quatro';
end
else if (meses > 24) then
begin
ParamByName('lote').AsString := 'maior';
end;
ExecSQL;
Next;
end;
dtTemp.SQL.Clear;
dtTemp.SQL.Add('SELECT FazCod, AnNumBrinco, AnDataNasc, AnLote, AnSexo FROM tempTeste');
dtTemp.Open;
end;
Quando eu coloco o Next e para passar para o próximo registro é quando ocorre o erro. Sem o Next ele funciona, porém ele altera só o primeiro registro.
Question
Pedro Dias
Bom dia pessoal.
Estou com um problema e não consigo resolver. E estou precisando disso com urgência. Provável que se eu não consiga antes do prazo resolver possa perder meu emprego.
É o seguinte, tenho um componente dtTemp do tipo TQuery. Tenho que percorrê-lo e atualizar todas todas a linhas. E eu também queria saber se tem alguma função pra eu ter um resultado da diferença no valor de meses entre duas datas.
With dtTemp do
begin
First;
dataFim := StrToDate(MaskEditDataFim.Text);
mesesStr := IntToStr(MonthsBetween(dataIni,dataFim));
meses := StrToInt(mesesStr);
While not dtTemp.Eof do
begin
brinco := Fields[1].AsString;
SQL.Clear;
SQL.Add('UPDATE tempTeste SET AnLote = :lote WHERE AnNumBrinco = :brinc');
ParamByName('brinc').AsString := brinco;
if (meses >= 0) AND (meses <=12) then
begin
ParamByName('lote').AsString := 'dose';
end
else if (meses > 12) AND (meses <= 24) then
begin
ParamByName('lote').AsString := 'vinte e quatro';
end
else if (meses > 24) then
begin
ParamByName('lote').AsString := 'maior';
end;
ExecSQL;
Next;
end;
dtTemp.SQL.Clear;
dtTemp.SQL.Add('SELECT FazCod, AnNumBrinco, AnDataNasc, AnLote, AnSexo FROM tempTeste');
dtTemp.Open;
end;
Quando eu coloco o Next e para passar para o próximo registro é quando ocorre o erro. Sem o Next ele funciona, porém ele altera só o primeiro registro.
Alguém pode me ajudar.
Qualquer duvida quanto a minha questão.
e-mail: pedrocarvalhodias@hotmail.com
facebook: https://www.facebook.com/profile.php?id=100002952873534
Agradeço desde já.
Edited by Pedro DiasLink to comment
Share on other sites
4 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.