Erro com Query - Dataset not open

Delphi

09/10/2016

Boa Noite pessoal.
Tudo começou depois que comecei a usar uma thread para fazer o processo..

Código da UNit Thread


qryconsulta.Close;
qryconsulta.SQL.clear;
qryconsulta.SQL.Add('select * from tb_sms where status = ''Enviado'' and dt_sms = :datain and dt_sms <= :datafin order by dt_previsao,hora,id_sms asc');
qryconsulta.ParamByName('datain').asdate := DateEdit1.date;
qryconsulta.ParamByName('datafin').asdate := dateedit2.date;
qryconsulta.open;


qryTotalizador.Close;
qryTotalizador.SQL.clear;
qryTotalizador.SQL.Add('select count(id_sms) from tb_sms where status = ''Enviado'' and dt_sms >= :datain and dt_sms <= :datafin');
qryTotalizador.ParamByName('datain').asdate := DateEdit1.date;
qryTotalizador.ParamByName('datafin').asdate := dateedit2.date;
qryTotalizador.open;

Quanto o processo era feito sem uso de Thread funcionava normalmente, porém como se trata de um timer, a aplicação ficava travada...Existe outras query que trabalham juntamente com essa, mas acredito que o erro esta na modo em que chamei a Thread...

Estou chamando-a somente assim:

th:= enviasms.create(false);
th.Resume;


Esta correto? Esse código esta em um timer, ou seja, de minuto em minuto o timer executa esse código acima que chama a thread, é correto fazer assim? Ou tem que ter algum código pra limpar da memória?


Obrigado desde já...
Antonelly Silva

Antonelly Silva

Curtidas 0

Respostas

Luiz Menin

Luiz Menin

09/10/2016

Já tentou trocar o th.Resume por th.Start?
GOSTEI 0
Antonelly Silva

Antonelly Silva

09/10/2016

Boa noite, não tentei. Mas é correto dar um Th.create todas as vezes no tímer? Não precisa de finalizar a Thread em algum momento?
GOSTEI 0
POSTAR