terça-feira, 25 de setembro de 2001

0

.NET Beta 2

Para aqueles que, como eu, aguardavam ansiosamente pela chegada do Beta 2 da plataforma .Net, deve ter ficado decepcionado com o erro durante o processo de instalação. Segundo a Microsoft, um lote de CDs saiu com defeito, mas a instalação pode ser concluída com sucesso, caso você siga os passos indicados em http://www.microsoft.com/brasil/vstudio/beta2install.stm Vou tentar quando chegar em casa e posto as novidades.

Esta matéria foi postada originalmente no ASP4Developers por Rubens N. Farias (site), que na época era "pós-graduado em análise de sistemas orientados a objetos, MCP, MCSD, MCAD, MCSD.NET e consultor em TI, além de idealizador do projeto ASP4Developers. Desenvolve sistemas sob medida, focados na satisfação do usuário, com qualidade e custo realista.". Hoje, vai saber...

quinta-feira, 20 de setembro de 2001

1

Um "dedo-duro" a seu favor

Neste artigo mostro como o sistema pode encontrar um erro pela página e imediatamente lhe comunicar através do e-mail. Irei usar dois recursos simples para conseguir algo muito útil, ter conhecimento de erros ocorridos no site.

Para facilitar o uso e compreensão, a função que irá processar o erro é um artigo único que deverá ser incluido nas páginas, e quando houver erro, a pagina o chamará automaticamente.


erro.asp -> será o arquivo que pegará os valores referentes ao erro e enviará ao seu e-mail.


teste.asp -> uma página exemplo que estará preparada para reportar o erro caso ocorra algum.

 

Neste artigo irei fazer uso do objeto ERR (para detectar e descrever o erro) e do CDONTS (componente padrão para envio de email).

 

Segue a página teste.asp


<!--#Include File="erro.asp"-->
'aqui faço inclusão do arquivo que irá dedurar o erro caso ocorra

<% On error Resume next %>

'se pegar erro no meio do documento, força a continuar

 

<center><B>Dedo Duro</b></center><BR><BR>

<%

response.write "Teste às " & time

reponse.write "note algo aqui"

'perceba a linha acima "note algo aqui", há um erro proposital pois não existe o objeto REPONSE

'abaixo a instrução que verificará, se o número de erro for maior que zero, então ocorreu algum

If err.number > 0 then

Call ERROS      'erros é a função pra dedar, que está dentro de erro.asp

End if %>

 

 


Agora, o arquivo erro.asp


<%


Function erros

DedoDuro = "Erro ocorrido em: " & now

DedoDuro = DedoDuro & "Pagina: " & request.ServerVariables("SCRIPT_NAME")

DedoDuro = DedoDuro & "Número: " & err.number

DedoDuro = DedoDuro & "Descrição: " & err.description

DedoDuro = DedoDuro & "Fonte: " & err.source

'acima cria a mensagem com a descrição do erro ocorrido

 

Set mail = Server.CreateObject("CDONTS.NewMail")



mail.subject = "Ocorreu um erro"

mail.MailFormat = 0

mail.BodyFormat = 0

mail.body = DedoDuro

mail.send

set mail = nothing

 

response.write "Ocorreu um erro nesta pagina, e um email foi gerado para notificar o webmaster"

End Function

%>

 


Pronto! É isso aí!


Rresumindo, o arquivo teste.asp tem um erro provocado e quando chega ao fim do documento, é verificado que ocorreu, e automaticamente chama a função ERROS, que é o arquivo erro.asp, que monta uma descrição do erro ocorrido e envia ao mail.



Esta matéria foi postada originalmente no ASP4Developers por Oscar Pires (BLADE) (site), que na época era "Desenvolvedor ASP e Visual Basic, desenvolve sites interativos e sistemas para empresas. ". Hoje, vai saber...

sexta-feira, 14 de setembro de 2001

0

Onde está o Wally ?

Olá gente! Esta nota é apenas para deixar claro que nao morri e dar uma satisfação aos amigos e visitantes do site. A enquete sobre o layout do site foi finalizada, onde o "novo" ganhou do "velho" com uma pequena margem de vantagem. Então, resolvi colocar as duas versões, podendo o visitante escolher qual ele prefere.. Mais democrático, não ?


Mas, o tempo anda escasso e, para variar, minha fonte queimou. Estarei redesenhando o ASP4D enquanto toco outros projetos paralelos.


E por falar em projetos paralelos, deixo aqui algumas dicas sobre o que ando estudando, para atiçar a curiosidade dos colegas. Andei analisando de perto os Schemas, em particular o XML-Data Reduced (XDR). Em linhas gerais, funciona basicamente como um DTD, definindo qual a estrutura de um documento XML, mas com dois diferenciais importantes: usa a sintaxe do XML e permite definir tipos de dados. Fica bastante interessante deixar o client fazer a validação de, por exemplo, campos data ou numéricos, sem muito código. Vale a visita.


Uma outra tecnologia que aposto bastante e que atualmente é a minha menina dos olhos, é a Scalable Vector Graphics (SVG). Consiste em um vocabulário XML para descrever gráficos bidimensionais, com recursos fantásticos, que é melhor vendo do que eu explicando. Acessem www.adobe.com/svg/demos/ e entendam o que eu estou falando. Não esqueçam de clicar com o botão direito, olhar o código fonte e exclamar: "putz! pensei que fosse flash... caraca!". Sinceramente recomendo uma análise detalhada da documentação de 600 e tantas páginas no site http://www.w3.org/TR/2001/REC-SVG-20010904/ (lembre-se que é um padrão que será aceito por empresas do porte de Microsoft, Adobe, Corel, etc)


Bom gente, por enquanto é só. Abraços a todos



Esta matéria foi postada originalmente no ASP4Developers por Rubens N. Farias (site), que na época era "pós-graduado em análise de sistemas orientados a objetos, MCP, MCSD, MCAD, MCSD.NET e consultor em TI, além de idealizador do projeto ASP4Developers. Desenvolve sistemas sob medida, focados na satisfação do usuário, com qualidade e custo realista.". Hoje, vai saber...

quarta-feira, 12 de setembro de 2001

0

Checando componentes do servidor

Você pode ver tudo q esta bilitado no servidor com este script! muito Útil!


<% @ Language="VBScript" %>
<% Option Explicit %>
<%
Dim theComponent(11)
Dim theComponentName(11)


' componentes
theComponent(0) = "ADODB.Connection"
theComponent(1) = "SoftArtisans.FileUp"
theComponent(2) = "AspHTTP.Conn"
theComponent(3) = "AspImage.Image"
theComponent(4) = "LastMod.FileObj"
theComponent(5) = "Scripting.FileSystemObject"
theComponent(6) = "SMTPsvg.Mailer"
theComponent(7) = "CDONTS.NewMail"
theComponent(8) = "Jmail.smtpmail"
theComponent(9) = "SmtpMail.SmtpMail.1"
theComponent(10) = "Persits.Upload.1"
theComponent(11) = "UnitedBinary.AutoImageSize"


' apelido do componente!
theComponentName(0) = "ADODB"
theComponentName(1) = "SA-FileUp"
theComponentName(2) = "AspHTTP"
theComponentName(3) = "AspImage"
theComponentName(4) = "LastMod"
theComponentName(5) = "FileSystemObject"
theComponentName(6) = "ASPMail"
theComponentName(7) = "CDONTS"
theComponentName(8) = "JMail"
theComponentName(9) = "SMTP"
theComponentName(10) = "Persits Upload"
theComponentName(11) = "AutoImageSize"


Function IsObjInstalled(strClassString)
 On Error Resume Next
  IsObjInstalled = False
  Err = 0
 Dim xTestObj
 Set xTestObj = Server.CreateObject(strClassString)
 If 0 = Err Then IsObjInstalled = True
 Set xTestObj = Nothing
  Err = 0
End Function
%>

<html>
<head>
<title>O q tem aqui?</title>
</head>
<body>
<table width="100%" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><b>Componentes
      instalados:</b></font></td>
  </tr>
  <tr>
    <td> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
      <table border="0" cellpadding="0" cellspacing="0" width="100%">
        <%
  Dim i
        For i=0 to UBound(theComponent)
      If Not IsObjInstalled(theComponent(i)) Then
       
   Else
            Response.Write "<tr>" & vbCrLf
           Response.Write "<td width=""100%"">" & vbCrLf
           Response.Write "<b>" & theComponentName(i) & "</b>" & vbCrLf
          Response.Write "</td>" & vbCrLf
          Response.Write "</tr>" & vbCrLf
      End If
     Next
     %>

   </table>
 </font>
 </td>
  </tr>
</table>


</body>
</html>



Esta matéria foi postada originalmente no ASP4Developers por Ismael Nobre (site), que na época era "Analista.
Quer me contratar ?
Cel. 96420687". Hoje, vai saber...

quinta-feira, 6 de setembro de 2001

0

Calendário ASP

Fiquei um pouco chateado quando coloquei um código de calendário em uma pagina e não funcionou. Para principiantes isso é uma decepção, ele ficaria muito chateado, então resolvi arrumar e mostrar todo o código.


Aceito críticas  e sugestões


[]´s


Myers


<%@ Language="VBScript" %>
<%
fDia = 1 ' Varaivel para iniciar contagem no dia 1


' Nome de como foi salva esta página(neste caso a sugestão é calendario.asp)
sURL = "calendario.asp"


' Matriz que indica o nº máximo de Dias permitidos em cada mês
' Jan. tem 31 Dias, Fev. tem 28 ou 29 Dias, Mar. tem 31 Dias, etc.
' A contagem dos Meses começa a partir do um (1): Jan. = 1, Fev. = 2, Mar. = 3, etc.
Dim aDiasMes
ReDim aDiasMes(12)
   aDiasMes(01) = 31
   aDiasMes(02) = 28
   aDiasMes(03) = 31
   aDiasMes(04) = 30
   aDiasMes(05) = 31
   aDiasMes(06) = 30
   aDiasMes(07) = 31
   aDiasMes(08) = 31
   aDiasMes(09) = 30
   aDiasMes(10) = 31
   aDiasMes(11) = 30
   aDiasMes(12) = 31


' Função que escreve o mês por extenso, passando o numero do Mes como parametro
Function MesExtenso(Mes)
   Select Case Mes
   Case 1
      MesExtenso = "Janeiro"
   Case 2
      MesExtenso = "Fevereiro"
   Case 3
      MesExtenso = "Março"
   Case 4
      MesExtenso = "Abril"
   Case 5
      MesExtenso = "Maio"
   Case 6
      MesExtenso = "Junho"
   Case 7
      MesExtenso = "Julho"
   Case 8
      MesExtenso = "Agosto"
   Case 9
      MesExtenso = "Setembro"
   Case 10
      MesExtenso = "Outubro"
   Case 11
      MesExtenso = "Novembro"
   Case 12
      MesExtenso = "Dezembro"
   End Select
End Function


' Função que escreve os dias da semana
Function DiaSemana(iDia)
   Select Case iDia
      Case 0
         DiaSemana = "Dom"
      Case 1
         DiaSemana = "Seg"
      Case 2
         DiaSemana = "Ter"
      Case 3
         DiaSemana = "Qua"
      Case 4
         DiaSemana = "Qui"
      Case 5
         DiaSemana = "Sex"
      Case 6
         DiaSemana = "Sab"
   End Select
End Function


' Funcao para saber quantas semanas tem o mes
Function nSemanas(Mes, Ano)
Dim nSem
   DtInicial = DateSerial(Ano, Mes, fDia)
   if WeekDay(DtInicial) = 1 then
      nSem = 0
   else
      nSem = 1
   end if
   nDiasMes = aDiasMes(Mes)


   for i = 1 to nDiasMes
      if WeekDay(DtInicial) = 1 then
         nSem = nSem + 1
      end if
      DtInicial = DateAdd("d", 1, DtInicial)
   next
   nSemanas = nSem
End Function


' Subrotina que identifica se o ano é bissexto
Sub SetBissexto
   Data = Request("Data")
   if Trim(data) = "" then
      Data = Date()
   else
      Data = CDate(Data)
   end if
   Ano = Year(Data)
   'Verifica se é Ano bissexto e diz se fevereiro tem 28 ou 29 dias
   if (Ano mod 4 = 0) or (Ano mod 100 = 0) and (Ano mod 400 = 0) then
      aDiasMes(2) = 29
   else
      aDiasMes(2) = 28
   end if
End Sub


   SetBissexto ' Chamada da Subrotina de verificacao


' Subrotina que monta o calendario
Sub MontaCalendario
   Data = Request("Data")
   if Trim(data) = "" then
      Data = Date()
   else
      Data = CDate(Data)
   end if


   Ano = Year(Data)
   Mes = Month(Data)
   DiaInicial = WeekDay(DateSerial(Ano, Mes, fDia))
   DtInicial = DateSerial(Ano, Mes, fDia)


   ' Início da Tabela
   response.write "<table border=""1"" cellpading=""0"" cellspacing=""0""><tr>"&VBCrLf
 
   ' Retroage um mês
   response.write "<th width=""25"">"&VBCrLf
   response.write "<center><input type=""button"" value="" << "" onclick=""javascript:document.location.href='"&sURL&"?data="&DateAdd("m", -1, DtInicial)&"'"">"&VBCrLf
   response.write "</center></th>"&VBCrLf
 
   ' Escreve mês e o Ano no cabeçalho
   response.write "<th colspan=""5"" class=""cel"" align=""center"" nowrap width=""120"">"&MesExtenso(Month(DtInicial))&" - "&Year(DtInicial)&"</th>"&VBCrLf
   ' Avança um mês
   response.write "<th width=""25"">"&VBCrLf
   response.write "<center><input type=""button"" value="" >> "" onclick=""javascript:document.location.href='"&sURL&"?data="& DateAdd("m", 1, DtInicial)& "'"">"&VBCrLf
   response.write "</center></th></tr>"&VBCrLf


   ' Escreve cabeçalho dos Dias da semana
   response.write "<tr>"
   for j = 0 to 6
      if j=0 then
         response.write "<td class=""cel"" align=""center""><div class=""dom"">"&DiaSemana(j)&"</div></td>"&VBCrLf
      else
         response.write "<td class=""cel"" align=""center"">"&DiaSemana(j)&"</td>"&VBCrLf
      end if
   next
   response.write "</tr>"


   ' Escreve tabela de dias
   for i = 0 to (nSemanas(Month(DtInicial), Year(DtInicial)) -1)
      response.write "<tr>"&VBCrLf
      for j = 0 to 6
         if (DiaInicial-1) > j and i = 0 then
            if j=0 and i=0 then
               response.write "<td class=""cel""><div class=""dom"">&nbsp;</div></td>"&VBCrLf
            else
               response.write "<td class=""cel"">&nbsp;</td>"&VBCrLf
            end if
         else
            if Month(DtInicial) > Mes or Year(DtInicial) > Ano then
               response.write "<td class=""cel"">&nbsp;</td>"&VBCrLf
            else
               if weekDay(DtInicial) = 1 then
                  response.write "<td class=""cel"" align=""center""><div class=""dom""><a href=""javascript:upData('"&DtInicial&"')"">"&Day(DtInicial)&"</a></div></td>"&VBCrLf
               else
                  if DtInicial = Date() then
                     response.write "<td align=""center""><div class=""hoje""><a href=""javascript:upData('"&DtInicial&"')"" style=""Color: White;"">"&Day(DtInicial)&"</a></div></td>"&VBCrLf
                  else
                     response.write "<td class=""cel"" id="&Day(DtInicial)&" align=center><a href=""javascript:upData('"&DtInicial&"'); ClickedDay('"&Day(DtInicial)&"')"">"&Day(DtInicial)&"</a></td>"&VBCrLf
                  end if
               end if
            end if
            DtInicial = DateAdd("d", DtInicial, 1)
         end if
      next
      response.write "</tr>"&VBCrLf
   next


   ' Fim tabela
   response.write "</table>"&VBCrLf
End Sub


%>
<html>
<head>
<script language="JavaScript">
<!--
// Função para exibir a data quando clicar no dia
function upData(data){
   alert(data);
   }


function ClickedDay(Dia){
   return
   }
-->
</script>


<style>
th.cel{Font-Family: Verdana; Font-Size: 8 pt; Background : #DDF4FF; Color: #003366;}
td.cel{Font-Family: Verdana; Font-Size: 8 pt;}
.hoje {Font-Family: Verdana; Font-Size: 8 pt; Background : #0000FF; Color: #FFFFFF;}
a{Font-Family: Verdana; Font-Size: 8 pt; Text-Decoration: None; Color: #000000;}
a:hover{Font-Family: Verdana; Font-Size: 8 pt; Text-Decoration: None; Color: #FF0000;}
.dom{Font-Family: Verdana; Font-Size: 8 pt; Text-Decoration: None; Color: #003366;
     background : #DDF4FF;}
p {Font-Family: Verdana; Font-Size: 10 pt;}
td{Font-Family: Verdana; Font-Size: 10 pt;}
</style>


<title>calendario.asp [Atualizado por: Myers :: mayersk@hotmail.com]</title></head>
<body bgcolor="#FFFFFF">
  <p align="center">
      <% MontaCalendario %>
     <br><br>
    <font size="1"><a href="mailto:mayersk@hotmail.com">Atualizado por Myers :: mayersk@hotmail.com</a></font>
  </p>
</body>
</html>



Esta matéria foi postada originalmente no ASP4Developers por Rafael "M4yers" Rossi (site), que na época era "...". Hoje, vai saber...

terça-feira, 4 de setembro de 2001

0

Função para contar a quantidade caracteres na String

' Verifica a qtuantidade que uma string tem de um caractere
Function CaracteresNaString(Str,Caracter)
Dim Contador, i, QtdeChar


   Contador = 0
   for i = 1 to Len(Str)
      Contador = Contador + 1
      'Se existir o caractere na string adiciona 1 ao contador de caracteres
      if mid(Str,Contador,1) = Caracter then
       QtdeChar = QtdeChar + 1
      end if
   next


   CaracteresNaString = QtdeChar
  
End Function



Esta matéria foi postada originalmente no ASP4Developers por Rafael "M4yers" Rossi (site), que na época era "...". Hoje, vai saber...