quarta-feira, 24 de janeiro de 2001

0

Executando stored procedures / consultas parametri

Conforme vamos nos aperfeiçoando na "Arte de programar computadores", começamos a integrar diversas soluções em uma mesma aplicação. Imagine que você tenha uma consulta no Access que recebe um parâmetro para fazer uma consulta a uma tabela. Ela funciona legal e você não quer copiar o código SQL inteiro para seu script ASP. O que fazer ?


A solução vêm com o nome de object Command. Este objeto permite executar stored procedures e consultas parametrizadas no banco de dados. Segue um exemplo prático: Suponhamos que você tem uma consulta no Access ("MinhaConsulta"), que recebe o código do cliente ("CódigoCliente", númerico inteiro) e faz uma série de relacionamentos entre tabelas. Para este exemplo funcionar, é necessário que vc inclua o arquivo ADOVBS.INC no fonte com a diretiva #include.


<!-- #include file="adovbs.inc" -->
... início do script, contendo a conexão com o banco de dados ...
set oCmd = Server.CreateObject("ADODB.Command")
oCmd .ActiveConnection = conn         ' Aqui entra a referência ao objeto Connection
oCmd.CommandType = adCmdStoredProc    ' Consultas parametrizadas são interpretadas como SPs
oCmd.CommandText = "MinhaConsulta"    ' Aqui vai o nome da consulta
oCmd.Parameters.Append oCmd.CreateParameter("CódigoCliente", adInteger,,, Request.Form( "CodCliente" ) )


set rsquery = oCmd.Execute


... segue rotina para exibir os dados coletados ...



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...

0

Usuários podem ter acesso ao seu código ASP!

Outra falha de segurança foi encontrada. Esta permite que os usuários visualizem o seu código ASP através da seguinte URL:

 http://www.yoursite.com/null.htw?CiWebHitsFile=/yourfile.asp%20&CiRestriction=none&CiHiliteType=Full


    A microsoft divulgou um patch que aparentemente resolve o problema (link abaixo).

    http://www.microsoft.com/technet/security/bulletin/ms00-006.asp



    Esta matéria foi postada originalmente no ASP4Developers por Julio Carvalho, que na época era "Webdeveloper, Programador ASP e DBA MS-SQL. ". Hoje, vai saber...

    0

    auxarrays.asp

    O código abaixo complementa o calendário estruturado:


    <%
    Dim weekdays, months, monthdays, fDay, lDay
    'weekdays = Array("Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab")
    weekdays = Array("D", "S", "T", "Q", "Q", "S", "S")
    weekdbig = Array("Domingo", "Segunda-Feira", "Terça-Feira", "Quarta-Feira", "Quinta-Feira", "Sexta-Feira", "Sábado")
    months = Array("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro")
    monthDays = Array(31,28,31,30,31,30,31,31,30,31,30,31)



    function diasemana(data)
     diasemana = weekdbig(WeekDay(data)-1)
    end function


    function WriteMonth(data)
     WriteMonth = months(month(data)-1)
    end function


    sub dbug(vari)
     Response.Write "<script>alert('Valor: "&vari&"')</script>"
    end sub
    %>



    Esta matéria foi postada originalmente no ASP4Developers por João Márcio Gonçalves Prado, que na época era "Webmaster Santanense Tecidos.
    Diversos programas e sistemas ASP feitos para todo o tipo de empresas em MG.
    ". Hoje, vai saber...

    0

    Calendário ASP - Estruturado.

    O código abaixo implementa um calendário que pode ser customizado para chamar um link, frame ou JavaScript.


    Escrito em programação estruturada ele não é dos mais fáceis de se entender, atualmente estou trabalhando em uma versão orientada a objetos do mesmo.


    Peguem também o código do auxarrays.asp que complementa o código do calendário.


    Aguardo sugestões e críticas (elogios também porque não).


    []s


    PEST


     


    <%@ Language="VBScript" %>
    <!-- #include file="auxArrays.asp" -->
    <%
    fDay = 1


    function nWeeks(Mes, Ano)
     Dim nSemanas
     startdate = DateSerial(Ano, Mes, fDay)
     if WeekDay(startdate) = 1 then
      nsemanas = 0
     else
      nsemanas = 1
     end if
     ndiasmes = monthDays(Mes-1)
     
     for i = 1 to nDiasmes
      if WeekDay(startdate) = 1 then
       nsemanas = nsemanas + 1
      end if
      startdate = DateAdd("d", 1, startdate)
     next
     nWeeks = nsemanas
    end function


    sub setBissexto
     Data = Request("Data")
     if Trim(data) = "" then
      Data = Date()
     else
      Data = CDate(Data)
     end if
     Ano = Year(Data) 
     if (ano mod 4 = 0) or (ano mod 100 = 0) and (ano mod 400 = 0) then
      monthDays(1)=29
     else
      monthDays(1)=28 'Teste ano bissexto
     end if
    end sub
    setBissexto


    sub WriteCalendar
     Data = Request("Data")
     if Trim(data) = "" then
      Data = Date()
     else
      Data = CDate(Data)
     end if
     Ano = Year(Data)
     Mes = Month(Data)
     startday = WeekDay(DateSerial(ano, mes, fday))
     startdate = DateSerial(ano, mes, fday)


     '#Início Tabela
     Response.Write "<table border cellpading=0 cellspacing=0><tr>"&VBCrLf
     
     '#Descer mês
     Response.Write "<th width=25>"&VBCrLf
     Response.Write "<center><input type='button' value=' << ' onclick='javascript:document.location.href=""calend.asp?data="&DateAdd("m", -1, startdate)&"""'>"&VBCrLf
     Response.Write "</center></th>"&VBCrLf
     
     '#Escreve mês ano
     Response.Write "<th colspan=5 class=cal align=center nowrap width=120>"&WriteMonth(startdate)&" - "&Year(startdate)&"</th>"&VBCrLf
     
     '#Subir mês
     Response.Write "<th width=25>"&VBCrLf
     Response.Write "<center><input type='button' value=' >> ' onclick='javascript:document.location.href=""calend.asp?data="&DateAdd("m", 1, startdate)&"""'>"&VBCrLf
     Response.Write "</center></th></tr>"&VBCrLf


     '#Escreve cabeçalho dias da semana
     Response.Write "<tr>"
     for j = 0 to 6
      if j=0 then
       Response.Write "<td class=cal align=center><div class=dom>"&weekdays(j)&"</div></td>"&VBCrLf
      else
       Response.Write "<td class=cal align=center>"&weekdays(j)&"</td>"&VBCrLf
      end if
     next
     Response.Write "</tr>"


     '#Escreve tábua de dias
     for i = 0 to (nWeeks(Month(startdate), Year(startdate)) -1)
      Response.Write "<tr>"&VBCrLf
      for j = 0 to 6
       if (startday-1) > j and i = 0 then
        if j=0 and i=0 then
         Response.Write "<td class=cal><div class=dom>&nbsp;</div></td>"&VBCrLf
        else
         Response.Write "<td class=cal>&nbsp;</td>"&VBCrLf
        end if
       else
        if Month(startdate) > Mes or Year(startdate) > Ano then
         Response.Write "<td class=cal>&nbsp;</td>"&VBCrLf
        else
         if weekDay(startdate) = 1 then
          Response.Write "<td class=cal align=center><div class=dom>"&Day(startdate)&"</div></td>"&VBCrLf
         else
          if startdate = Date() then
           Response.Write "<td align=center><div class=hoje><a href='javascript:updDiary("""&startDate&""")' style='Color: White;'>"&Day(startdate)&"</a></div></td>"&VBCrLf
          else
           Response.Write "<td class=cal id="&Day(startdate)&" align=center><a href='javascript:updDiary("""&startDate&"""); fixClickedDay("""&Day(startdate)&""")'>"&Day(startdate)&"</a></td>"&VBCrLf
          end if
         end if
        end if
        startdate = DateAdd("d", startdate, 1)
       end if
      next
      Response.Write "</tr>"&VBCrLf
     next


     '#Fim tabela
     Response.Write "</table>"&VBCrLf
    end sub


    %>
    <html>
    <head>
    <script language="JavaScript">
    <!--
    function updDiary(data){
     alert(data)
    }


    function fixClickedDay(dia){
     return
    }
    -->
    </script>



    <style>
    th.cal
    {
     Font-Family: Verdana;
     Font-Size: 8 pt;
     Background : Blue;
     Color : White;
    }


    td.cal
    {
     Font-Family: Verdana;
     Font-Size: 8 pt;
    }


    .hoje
    {
     Font-Family: Verdana;
     Font-Size: 8 pt;
     Background : Teal;
     Color: White;
    }


    a
    {
     Font-Family: Verdana;
     Font-Size: 8 pt;
     Text-Decoration: None;
     Color: "Black";
    }


    a:hover
    {
     Font-Family: Verdana;
     Font-Size: 8 pt;
     Text-Decoration: None;
     Color: "Red";
    }


    .dom
    {
     Font-Family: Verdana;
     Font-Size: 8 pt;
     Text-Decoration: None;
     Color: White;
     Background : Blue;
     
    }
    p
    {
     Font-Family: Verdana;
     Font-Size: 10 pt;
    }


    td
    {
     Font-Family: Verdana;
     Font-Size: 10 pt;
    }
    </style>


    <title>&lt;--    Santanense.Net    --&gt;</title></head>
    <body bgcolor="#FFFFFF">
    <p><img src="../imgs/santanense.net.gif" width="544" height="89"></p>
    <p>
      <% writeCalendar %>
    </p>
    </body>
    </html>



    Esta matéria foi postada originalmente no ASP4Developers por João Márcio Gonçalves Prado, que na época era "Webmaster Santanense Tecidos.
    Diversos programas e sistemas ASP feitos para todo o tipo de empresas em MG.
    ". Hoje, vai saber...

    0

    Beat - o horário mundial da Internet!







    Beat - o horário mundial da Internet


    Os encontros on-line são cada vez mais comuns na Internet. É possível conversar, trabalhar e estudar com pessoas de outros países e continentes. Mas o problema do fuso horário tem causado muitos desencontros! Como marcar uma sessão on-line com pessoas que vivem a noite quando apenas acabamos de levantar pela manhã?
    Pensando nisso foi criado a hora internacional da Internet.

    Com a ampliação do número de usuários da Internet e das formas de utilização de tecnologias para se comunicar on-line (chats, video-conferências etc.), criou-se um problema: como marcar uma hora para realizar estas sessões on-line?
    Com a diferença de fusos horários entre países, esta pode ser uma tarefa complicada; que horas são agora em Roma? E em Bombain?

    Pensando nisto, a Swatch (fabricante de relógios) decidiu criar um novo sistema de contagem de tempo para a utilização na Internet; e quem sabe, se a moda "pegar", também no mundo real!
    Os caras até criaram um novo meridiano (BMT ) em Biel na Suíça, que foi inaugurado em 23 de outubro de 1998 e é a referência universal para o horário da Internet! .

    A intenção é criar uma representação do tempo que seja comum a todos, ou seja, tenha o mesmo valor em qualquer país do mundo; surgiu então o Beat.

    Os caras criaram o Beat dividindo o número de segundos existentes em um dia (86.400 segundos) por mil. Então, um dia tem 1000 Beats, cada um correspondendo a 86,4 segundos (1 minuto e 26,4 segundos).

    O símbolo do Beat é @, e o Beat @000 corresponde à zero hora no horário tradicional na cidade de Biel (Suíça), onde está sediada a Swatch.

    Sendo assim, não importa o país no qual o internauta está, o horário em Beat é sempre o mesmo para todos. Por exemplo:



















    País horário tradicional Beat
    Suíça (Biel) 00:00h @000
    Brasil (Brasília) 20:00h @000
    Tokio 08:00h @000

    Para fazer a conversão do horário tradicional para o Beat é necessário saber a diferença de fuso horário entre a cidade em que se está e a cidade de Biel (levando em conta o eventual horário de verão); no caso de Brasília a diferença sem horário de verão é de 4 horas (menos 1 hora no caso de estarmos no horário de verão).


    A diferença em horas entre as duas cidades é convertida em segundos e o resultado é dividido por 86,4 segundos. Como resultado temos o Beat. Por exemplo:

    Supondo que agora em Brasília sejam 14:36:00h (horário de inverno), então:


    Beat=((14 * 3600) + (36 * 60) + (4 * 3600)) / 86.4


    Beat=@775



    Bem ficamos por aqui. Para o cálculo do Beat ou utilize nosso conversor on-line para saber o Beat em sua cidade.

    Boa programação!




  • Ronaldo é desenvolvedor ASP e analista de sistemas; desenvolve soluções para Internet e é autor de vários artigos sobre a linguagem ASP em sites do Brasil e do exterior.




  • Esta matéria foi postada originalmente no ASP4Developers por Ronaldo Reis, que na época era "Desenvolvedor ASP.NET e analista de sistemas; desenvolve soluções para Internet e é autor de vários artigos em sites do Brasil e do exterior.". Hoje, vai saber...

    0

    Contador fácil em TXT

    Uma questão muito importante, e algumas vezes trabalhosa, é a de determinar quantas visitas recebeu cada página de um determinado
    site. Em geral, a solução para que as coisas realmente funcionem do modo como queremos envolve banco de dados, consultas, e muito código . Por isso, resolvi contribuir com um código que possiblite o contagem de acessos não de apenas uma, mas de todas as páginas de um
    site; e o que é melhor, sem banco de dados!

    <%
    ' declarando as variáveis
    Dim x, FSObject, letot, escrevetot, numacesso, acessos(), nomepag(), apagina


    'Recupera o nome da página atual
    apagina = Request.ServerVariables("URL")


    ' Agora vamos ler o nosso arquivo que armazena as contagens e procurar o nome da página atual
    Set FSObject = CreateObject("Scripting.FileSystemObject")


    nomearquivo=server.mappath("totais.txt")


    Set letot = FSObject.OpenTextFile(nomearquivo,1,1)


    ' Observe que o número 1 em vermelho indica que o arquivo totais.txt será criado caso ainda não exista!


    ' O arquivo é lido, linha a linha, o nome da página atual é procurado, e os valores já lidos são armazenados em duas variáveis: nomepag e numacesso


    'Aqui, zeramos o indexador de nossa lista
    x=0


    'Esta variável vai nos indicar se a página já foi visitada alguma vez
    cabaco=0


    'Fazemos um Loop até a última linha do arquivo
    While Not letot.AtEndOfStream


    ReDim preserve nomepag(x)


    ' Incluímos o nome da primeira página registrado na lista nomepag
    nomepag(x) = letot.ReadLine


    ' Comparamos para saber se o nome da página já registrada é o mesmo do nome da página atual
    If nomepag(x) = apagina Then


    ReDim preserve acessos(x)


    ' Se for a mesma página, adicionamos 1 ao número de visitas registradas, e incluímos o valor na lista numacesso
    acessos(x) = letot.ReadLine + 1


    ' guardamos o número total de acessos dessa página na variável contagem
    contagem = acessos(x)


    ' Aumentamos em 1 o indexador de nossa lista
    x = x + 1


    'Aqui, como a página já foi visitada, à variável cabaco é atribuida o valor 1
    cabaco=1


    ' Caso o nome da página atual não se encontre registrado
    Else


    ReDim preserve acessos(x)


    ' Carregamos os valores em nossa lista sem nenhum acréscimo
    acessos(x) = letot.ReadLine


    ' Aumentamos em 1 o indexador de nossa lista
    x = x + 1


    End If


    ' Volta ao início e parte para uma nova linha de nosso arquivo
    Wend


    ' Fechamos o objeto
    letot.Close


    Set letot = Nothing


    ' Agora vamos "despejar" os valores de nossa lista em um novo arquivo totais.txt
    Set escrevetot = FSObject.CreateTextFile(nomearquivo)


    'Zeramos o indexador de nossa lista
    x = 0


    ' Fazemos um looping por nossa lista
    For Each numacesso In nomepag


    'Escrevemos o nome da página (nomepag) no arquivo de texto
    escrevetot.WriteLine nomepag(x)


    ' Na próxima linha vai o total de acessos dessa página
    escrevetot.WriteLine acessos(x)


    ' Aumentamos em 1 o indexador de nossa lista
    x = x + 1


    Next


    ' Se a página nã foi visitada nenhuma vez...
    if cabaco=0 then


    ' Escrevemos o nome da página no final do arquivo texto
    contador=1


    contagem=1


    escrevetot.WriteLine apagina


    ' Na próxima linha, atribuímos 1 ao valor de visitas feitas a esta página
    escrevetot.WriteLine contador


    end if


    ' Fechamos o objeto
    escrevetot.Close


    Set escrevetot = Nothing


    Set FSObject = Nothing


    ' Aqui, um pequeno código opcional, caso você queira exibir o número de visitas em sua página
    Response.Write "até o momento, a página "& apagina &" recebeu "& contagem & " visitantes"
    %>


    É isto!


    Um contador simples e eficiente, uma solução perfeita para um sistema de contagem sem muito trabalho.
    Tudo o que você tem que fazer agora é incluir este código em todas as páginas de seu
    site, utilizando:


    <!-- #include file="contador-facil.asp" -->


    Espero que esse código seja útil para todos.
    Boa programação!




    Esta matéria foi postada originalmente no ASP4Developers por Ronaldo Reis, que na época era "Desenvolvedor ASP.NET e analista de sistemas; desenvolve soluções para Internet e é autor de vários artigos em sites do Brasil e do exterior.". Hoje, vai saber...

    terça-feira, 16 de janeiro de 2001

    0

    Conversão Hexadecimal -> Decimal

    Uma função que faz a conversão de bases hexadecimal para decimal:


    Function Hex2Dec( hexadecimal )
    dim n, aux, valores, decimal, fator
    valores = "0123456789ABCDEF"
    n = 1: decimal = 0
    for n = len( hexadecimal ) to 1 step -1
        fator   = 16 ^ ( len( hexadecimal ) - n )
        aux     = InStr( valores, mid( hexadecimal, n, 1 ) ) - 1
        decimal = decimal + ( aux * fator )
    next
    Hex2Dec = decimal
    End Function



    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...

    sexta-feira, 5 de janeiro de 2001

    0

    Impressão em JS

    Postado no news://uol.mundodigital.linguagens.javascript por Zuvirandu


    <SCRIPT LANGUAGE="JavaScript">
    <!--


    var da = (document.all) ? 1 : 0;
    var pr = (window.print) ? 1 : 0;
    var mac = (navigator.userAgent.indexOf("Mac") != -1);


    function printPage(frame, arg) {
      if (frame == window) {
        printThis();
      } else {
        link = arg;
        printFrame(frame);
      }
      return false;
    }


    function printThis() {
      if (pr) { // NS4, IE5
        window.print();
      } else if (da && !mac) { // IE4 (Windows)
        vbPrintPage();
      } else { // other browsers
        alert("Descupe, mas o seu browser n&atilde;o suporta essa
    fun&ccedil;&atilde;o");
      }
    }


    function printFrame(frame) {
      if (pr && da) { // IE5
        frame.focus();
        window.print();
        link.focus();
      } else if (pr) { // NS4
        frame.print();
      } else if (da && !mac) { // IE4 (Windows)
        frame.focus();
        setTimeout("vbPrintPage(); link.focus();", 100);
      } else { // other browsers
        alert("Descupe, mas o seu browser n&atilde;o suporta essa
    fun&ccedil;&atilde;o");
      }
    }


    if (da && !pr && !mac) with (document) {
      writeln('<OBJECT ID="WB" WIDTH="0" HEIGHT="0"
    CLASSID="clsid:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>');
      writeln('<' + 'SCRIPT LANGUAGE="VBScript">');
      writeln('Sub window_onunload');
      writeln('  On Error Resume Next');
      writeln('  Set WB = nothing');
      writeln('End Sub');
      writeln('Sub vbPrintPage');
      writeln('  OLECMDID_PRINT = 6');
      writeln('  OLECMDEXECOPT_DONTPROMPTUSER = 2');
      writeln('  OLECMDEXECOPT_PROMPTUSER = 1');
      writeln('  On Error Resume Next');
      writeln('  WB.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER');
      writeln('End Sub');
      writeln('<' + '/SCRIPT>');
    }


    // -->
    </SCRIPT>



    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, 3 de janeiro de 2001

    1

    Validação CGC/CPF

    Retirado do news://uol.mundodigital.linguagens.javascript


    <html>
    <body>

     <SCRIPT language="javascript">
     function cgc(pcgc)
     {
           // verifica o tamanho
     if (pcgc.length != 14) {
      sim=false
      alert ("Tamanho Invalido de CGC")
      }
     else {sim=true}

      if (sim )  // verifica se e numero
      {
      for (i=0;((i<=(pcgc.length-1))&& sim); i++)
      {
       val = pcgc.charAt(i)
           // alert (val)
       if
    ((val!="9")&&(val!="0")&&(val!="1")&&(val!="2")&&(val!="3")&&(val!="4") &&
    (val!="5")&&(val!="6")&&(val!="7")&&(val!="8")) {sim=false}
       }
       if (sim)  // se for numero continua
       {
        m2 = 2
        soma1 = 0
        soma2 = 0
        for (i=11;i>=0;i--)
        {
         val = eval(pcgc.charAt(i))
           // alert ("Valor do Val: "+val)
         m1 = m2
      if (m2<9) { m2 = m2+1}
      else {m2 = 2}
      soma1 = soma1 + (val * m1)
      soma2 = soma2 + (val * m2)
        }  // fim do for de soma

      soma1 = soma1 % 11
      if (soma1 < 2) {  d1 = 0}
       else { d1 = 11- soma1}

         soma2 = (soma2 + (2 * d1)) % 11
      if (soma2 < 2) { d2 = 0}
       else { d2 = 11- soma2}
            // alert (d1)
           // alert (d2)
        if ((d1==pcgc.charAt(12)) && (d2==pcgc.charAt(13)))
       { alert("Valor Valido de CCG") }
       else alert("Valor invalido de CCG")
       }
     }

     }
    </script>

    <SCRIPT language="javascript">
     function cpf(pcpf)
     {

     if (pcpf.length != 11) {sim=false}
     else {sim=true}

      if (sim )  // valida o primeiro digito
      {
      for (i=0;((i<=(pcpf.length-1))&& sim); i++)
      {
       val = pcpf.charAt(i)
       if

     ((val!="9")&&(val!="0")&&(val!="1")&&(val!="2")&&(val!="3")&&(val!="4")

     &&    (val!="5")&&(val!="6")&&(val!="7")&&(val!="8")) {sim=false}
       }

       if (sim)
      {
        soma = 0
        for (i=0;i<=8;i++)
        {
         val = eval(pcpf.charAt(i))
         soma = soma + (val*(i+1))
        }

        resto = soma % 11
        if (resto>9) dig = resto -10
        else  dig = resto
        if (dig != eval(pcpf.charAt(9))) { sim=false }
       else   // valida o segundo digito
        {

         soma = 0
        for (i=0;i<=7;i++)
         {
         val = eval(pcpf.charAt(i+1))
          soma = soma + (val*(i+1))
        }

         soma = soma + (dig * 9)
        resto = soma % 11
         if (resto>9) dig = resto -10
         else  dig = resto
       if (dig != eval(pcpf.charAt(10))) { sim = false }
        else sim = true
       }
       }
      }

      if (sim) { alert("Valor Valido de CPF") }
      else
        alert("Valor invalido de CPF")
     }
    </script>


    <form>
    <b>Teste de CPF:</b>
    <input type=Text name=xcpf onchange="cpf(this.form.xcpf.value);">
    </form>
    <br>
    <form>
    <b>Teste de CGC:</b>
    <input type=Text name=xcgc onchange="cgc(this.form.xcgc.value);">
    </form>

    </body>

    </html>



    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...

    0

    Como criar classes

    Acredito que vc conheça o conceito de classes. Como minha formação em processamento de dados data alguns anos, não saberia explicar "didaticamente", mas segue uma explanação mais "simplista".

     

    Podemos definir classes como um objeto, com seus próprios métodos (funções que atuam sobre este objeto) e propriedades (variáveis do objeto). Assim, o comando MyClass.Build() chama o método Build do objeto MyClass e MyClass.Titulo = "xyz" define o valor da propriedade Titulo do mesmo objeto. Pra quem acha isso complicado, vale o lembrete que, quando criamos um objeto ADODB.Connection, facilmente trabalhamos com suas propriedades (CursorType, Provider, etc) e métodos (Execute(), Open(), etc).

     

    Classes podem ser criadas facilmente no VBScript, mediante a utilização de alguns comandos não comumente usados. O uso de classes pode ser útil pela reutilização do mesmo código em diversas partes da aplicação e pela facilidade de atribuir seus valores. Pense no exemplo de paginação: qtas páginas de seu site usam o recurso de paginação, com a alteração de apenas uma ou duas características ? Pense qto código pode ser economizado com a utilização de apenas um código genérico. E lembre-se que o ASP é interpretado; ou seja: qto menos código, mais rápido a aplicação roda.

     

    O primeiro dos comandos necessários é o Class, que define o nome da Classe. Não tem muito o que dizer, exceto que ele deve ser terminado com End Class, que vai depois de todo o código da Classe, englobando-a.

     

    Após definir o nome da classe, vc precisa definir as propriedades. Vc pode simplesmente colocar Public Propriedade e então esta variável pode ser acessada externamente à ela. Caso coloque Private MyVar, esta variável terá escopo apenas dentro da classe. Muita gente usa o Propriety, que permite executar uma sequencia de comandos quando o valor da propriedade for atribuido, permitindo consistir os dados entrados.

     

    Após a definição das propriedades, podemos definir os métodos. Assim, o comando Public Default Sub NomeMetodo define o método padrão para a Classe. Vc tbém pode definir o escopo para Private, fazendo com que a sub/function seja acessível apenas internamente à classe.

     

    Pode parecer complicado, mas, com isso, vc já pode criar uma classe, como no exemplo abaixo:

     

    <%
    Class HelloWorld

     

    Private Texto_a_ser_mostrado

     

    Public Property Let Texto ( cString ) 'Isso declara a *variavel* pública "Texto"
    Texto_a_ser_mostrado = iif( len( cString & "" ) = 0, "Hello world!", cString )
    End Property

     

    Private Function iif( condicao, valor1, valor2 )
      if condicao then iif = valor1 else iif = valor2
    End Function

     

    Private Sub ChecarSeTudoOk()
        if len( Texto_a_ser_mostrado & "" ) = 0 then Texto = ""
    End Sub

     

    Public Default Sub ShowMessage
        ChecarSeTudoOk()
        response.write Texto_a_ser_mostrado
    End Sub

     

    End Class

     

    Dim oHelloWorld
    Set oHelloWorld = New HelloWorld
    With oHelloWorld
         '.Texto = "Hi there!"
         .ShowMessage()
    End With


    %>

     

    Vc pode pegar o trecho do Class (as linhas entre o "Class HelloWorld" e o "End Class", inclusive) e colocar em um arquivo chamado HelloWorldClass.asp e incluí-lo no seu script, com <!-- #include file="HelloWorldClass.asp" -->

     

    Com certeza este tutorial nao esgota o assunto. Mais info sobre Classes podem ser encontradas em www.4guysfromrolla.com

     

    Divirtam-se!


    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...