Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

cp_campinas

[Resolvido] Global asa, uso de select

Recommended Posts

Pessoal, boa tarde!

 

Preciso de uma pequena ajuda sobre o global asa.. montei uma sub application nele para envio de email a cada dia 30 dias.. até este ponto ok. fiz testes com a função e ele está funcionando.

 

Aonde vem o meu problema. Preciso que esta função busque valores no banco de dados e não estou conseguindo fazer com que ela funcione.

 

Ao rodar gera o seguinte erro:

 

 

Microsoft VBScript runtime error '800a01a8'

 

Object required: 'Application(...)'

 

/LM/W3SVC/4659/Root/global.asa, line 54

 

Neste linha tem o seguinte comando.:

 

Set Application("RsAll") = Application("Conn").execute("select contatos.Email as EmailC, * from contatos INNER JOIN Clientes ON contatos.idcliente = Clientes.idcliente where contatos.nascimento='"&Application("Mes")&"' order by nome asc")
Vou colocar aqui abaixo todo o meu arquivo global.asa.

 

<script LANGUAGE=VBScript RUNAT=Server>
     ' O aplicativo iniciou e foi definido a data de hoje a variável Application("Data" )
     ' A data de envio do email foi definida para 30 dias depois da data de hoje

     Sub Application_OnStart
  Set Application("Conn") = Server.CreateObject("ADODB.Connection")
  Application("strConn") = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=base.mdb"
  Application("Conn").open Application("StrConn")
 End Sub
 
 Sub Application_OnStart  
   Application.Lock
   Application("Data") = Date
   Application("Dia") = Day(Date)
   Application("Mes") = Month(Date)
            Application("DataEnvio") = DateAdd("d", 30, Date)
            Application.Unlock
      End Sub

  
     'Agora a sessao do usuario vai inicializar
     'Vamos agora fazer uma verificaçao para saber se hoje é o dia da data de envio do email

      Sub Session_OnStart
     
     'Se a data de envio e a data de hoje conferir, o email será enviado ao webmaster
     'Mas antes disso, a data de envio é modificada novamente para daqui a mais 30 dias.

    if Application("DataEnvio") = Date then
   Application.Lock
            Application("Data") = Date
            Application("DataEnvio") = DateAdd("d", 30, Date)
            Application.UnLock 
         
   if Application("Dia")  = "24" then
    
    if Application("Mes") < 10 then
     Application("Mes") = "0" & Application("Mes")
    end if 
     
    Set Application("RsAll") = Application("Conn").execute("select contatos.Email as EmailC, * from contatos INNER JOIN Clientes ON contatos.idcliente = Clientes.idcliente where contatos.nascimento='"&Application("Mes")&"' order by nome asc")
    
    if not RsAll.eof then
     mensagem = ""
  
     do while not Application("RsAll").eof
  
     strHost = "localhost"
     Set Mail = Server.CreateObject("Persits.MailSender")
     Mail.Host = strHost
     Mail.From = "contato@contato.com.br" ' From address
     Mail.AddAddress "contato@contato.com.br" ' From address
     'Mail.AddBcc RsAll("EmailC")
     Mail.Subject = "FELIZ ANIVERSÁRIO"
     Mail.IsHTML = True 
     Mail.Body = mensagem
     Mail.Send 
     set Mail = nothing
   
     cont = cont + 1
     Application("RsAll").Movenext
    loop
    
    'Response.Write("Foram enviados " & cont & " Email")
    if (cont >= 0) then
     strHost = "localhost"
     Set Mail = Server.CreateObject("Persits.MailSender")
     Mail.Host = strHost
     Mail.From = "contato@contato.com.br" ' From address
     Mail.AddAddress "contato@contato.com.br" ' From address
     'Mail.AddBcc ""
     Mail.Subject = "MONITORAMENTO DE ENVIO DE FELIZ ANIVERSÁRIO"
     Mail.IsHTML = True 
     Mail.Body = "Foram enviados " &cont& " No dia: " &date()& "  as " &time()& ""
     Mail.Send 
     set Mail = nothing
    end if 'Fecha contados
   end if 'Fecha o Rs.eof
  end if ' teste do dia
 end if '
end Sub
</SCRIPT>

Será que alguem poderia me ajudar???

 

Obrigado

Cleber

Compartilhar este post


Link para o post
Compartilhar em outros sites

Object required. Um dos motivos que faz com que esse erro ocorra é tentar utilizar a propriedade ou executar uma ação em um objeto quando o mesmo ainda não foi criado. Por exemplo, caso você tentar finalizar a instância de um objeto sem ter criando: conn.Close(). Esse tipo de ação gera o erro de número 800A01A8. Antes de finalizar a instância do objeto o mesmo deve ser criado. exemplo...

(Set conn = Server.CreateObject("ADODB.Connection"))

 

verifique isso e dê um response.write na sua sql para ver o esta esta passando

 

select contatos.Email as EmailC, * from contatos INNER JOIN Clientes ON contatos.idcliente = Clientes.idcliente where contatos.nascimento='"&Application("Mes")&"' order by nome asc

 

eu tenho uma fincao parecida, mas ao inves de executar a string sql no metodop execute do objeto connection eu crio um recordset...

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzum, valeu pela dica.. funcionou perfeitamente...depois vou postar o código pro pessoal do forum ter como base.. com certeza poderão sofrer duvidas como a minha..

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, k deu certo...

precisado estamos ai...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.