Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 4419 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Pessoal, poderiam me dar mais uma ajuda. o Sr. Igor foi muito gentil em me ajudar, mas nao estou achando como desenvolver a minha necessidade. tenho em meu banco de dados 1471 telefones cadastrados entre cliente, fornecedores e funcionarios. o sistema começa o envio para nossa lista, mas para de uma hora para outra. o ATTimeOut esta como 30000 e o intervalo entre menssagens esta 10, sei que é muita para para apenas um unico modem, mas nao teria quebrar a quantidade do lote em 50 por vez?

Postado

POis é, este é meu problema, nao consegui realizar estes procedimentos...

ja tentei com IF, For mas nao esta dando muito certo... saberia uma forma de realizar este processo?

thiago , vou tentar te ajudar de um modo simples , vc vai utilizar uma variavel integer pra contar oque vc querer que processe quando ela chegar em seu valor n .

Vamos simular o envio de 20 em 20 emails !

var i : integer ;

begin

i := 0 ;

// 1-Pesquisa o seu banco para listar os emails ha enviar

while not Query.eof do // laço da lista de emails

begin

//...Incluo 1 email ao lote aqui...

inc(i) ; // Atribuo + 1 ao minha variavel contadora

if i = 20 then // Quando chegar a 20 emails executo o processo de envio

begin

//... executo aqui o processo de envio e aguardo

//... Informo a Aplicação para descartar os 20 emails deste processo ja enviado

i := 0 ; // Zero a minha variavel contadora pra iniciar novamente a contagem

end ;

Query.next ; // Continuo o próximo

end ;

if i > 0 then

begin

//... executo aqui o processo de envio do restante dos emails que sobraram < 20

end ;

end ;

Com certeza vc precize nesta empreitada de Try Except pra tratar erros , enfim ... tem que testar !

Este foi um exemplo simples mas se quizer algo mais avançado vc pode tambem utilizar uma thread para esse caso , pra que não nescessite ficar aguardando o envio de todos estes emails até o fim ! , pesquise por thread .

Postado

Basicamente, criei desta forma

while not dtsmsprincipal.CLSMSCLIE.Eof do

begin

contaEnvio := contaEnvio+1;

with envioLote.add do

begin

Telefone := dtSMSPrincipal.CLSMSCLIENUM_CEL_CLIE.AsString;

Mensagem := Memo1.Text;

end;

dtsmsprincipal.CLSMSCLIE.Next;

if (contaEnvio = 50) or (dtSMSPrincipal.CLSMSCLIE.Eof) then

begin

frmPrincipal.ACBrSMS1.EnviarSMSLote(envioLote,indice);

contaEnvio := 0;

sleep(35);

enviolote.clear;

end;

mas ainda esta dando erro no envio total

  • Este tópico foi criado há 4419 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...