Criando módulos em páginas ASP

A não ser que o internauta deseje fazer um covil de ratos, modularizar é preciso.
A modularização tem por objetivos enxugar e reaproveitar códigos.
Códigos limpos são mais fáceis pra manter e aprimorar.

Um módulo é uma espécie de peça de Lego (daquelas que as crianças usam pra montar objetos). A diferença é que pros progamadores as peças montam programas.

Em ASP/HTML a modularização é feita da seguinte forma→

● Faz-se uma página ASP/HTML pra processamento de entrada/saída. Com exceção dos códigos ASP, todo dinamismo dela estará no lado cliente com os scripts (JavaScript ou VBScript);

● Os módulos estarão no lado servidor e serão páginas ASP;

● Os módulos serão anexados à página ASP/HTML com instruções INCLUDE ou então desviados com RESPONSE.REDIRECT. Quem criou RESPONSE.REDIRECT não sabia da existência de quadros (frames), portanto algumas vezes será necessário utilizar WINDOW.OPEN.



Um exemplo bem simples de modularização

Datas e horas sempre vêm cagalhadas do servidor.
Quem deixar por conta da configuração de servidor ficará à merce de dedos nervosos e acabar mostrando na saída um formato bem zoneado. O sensato, portanto, é trabalhar os valores pra mostrar segundo o padrão adotado no Braseiro.
E mais, muito mais incômodo é armazenar um DATETIME em banco de dados.
Até hoje aqueles pregos não entraram em consenso entre eles mesmos.
Em conexão ODBC o formato é {ts 'ANO-MES-DIA HORA:MINUTO:SEGUNDO'}. Exemplo→ {ts '2000-12-31 08:35:00'}
Já em OLEDB alguns servidores SQLServer requerem sob o formato 'ANO-MES-DIA HORA:MINUTO:SEGUNDO'. Exemplo→ '2000-12-31 08:35:00'
Portanto, tratamento de data/hora não é opcional→ é compulsório!

Nesse exemplo a aplicação consistirá de 4 módulos ASPcnvdh.asp, cnvdh_sql.asp, cnvdh_odbc.asp, default.vb.asp mais uma página ASP de interface→ default.asp.


cnvdh.asp
<%
'DateTime -> DD/MM/AAAA HH:MM
function CnvDH (DH)
dim Ano, Dia, Mes
dim Hor, Min
  if IsDate (DH) then
    Dia  = Right ("00" & Day (DH), 2)
    Mes  = Right ("00" & Month (DH), 2)
    Ano  = Year (DH)

    Hor  = Right ("00" & Hour (DH), 2)
    Min  = Right ("00" & Minute (DH), 2)

    CnvDH= Dia & "/" & Mes & "/" & Ano & " " & Hor & ":" & Min
  else
    CnvDH= ""
  end if
end function
%>

cnvdh_sql.asp
<%
'DateTime -> '2000-12-31 08:35:00'
function CnvDH_SQL (DH)
dim Data, Hora
  if not IsDate (DH) then
    CnvDH_SQL= ""
  else
    Data= Year (DH) & "-" & Right ("00" & Month (DH), 2) & "-" & Right ("00" & Day (DH), 2)
    Hora= Right ("00" & Hour (DH), 2) & ":" & Right ("00" & Minute (DH), 2) & ":" & Right ("00" & Second (DH), 2)
    CnvDH_SQL= "'" & Data & " " & Hora & "'"
  end if
end function
%>

cnvdh_odbc.asp
<%
'DateTime -> {ts '2000-12-31 08:35:00'}
function CnvDH_ODBC (DH)
dim Data, Hora
  if not IsDate (DH) then
    CnvDH_ODBC= ""
  else
    Data= Year (DH) & "-" & Right ("00" & Month (DH), 2) & "-" & Right ("00" & Day (DH), 2)
    Hora= Right ("00" & Hour (DH), 2) & ":" & Right ("00" & Minute (DH), 2) & ":" & Right ("00" & Second (DH), 2)
    CnvDH_ODBC= "{ts '" & Data & " " & Hora & "'}"
  end if
end function
%>

default.vb.asp
<%
dim DH, DH_Formatado, DH_ODBC, DH_SQL

DH          = Now
DH_Formatado= CnvDH (DH)
DH_ODBC     = CnvDH_ODBC (DH)
DH_SQL      = CnvDH_SQL (DH)
%>

default.asp
<!--#include file="cnvdh.asp"-->
<!--#include file="cnvdh_sql.asp"-->
<!--#include file="cnvdh_odbc.asp"-->
<!--#include file="default.vb.asp"-->
<html>
  <head>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="expires" content="0">
  </head>
  <body>
    DataHora corrente: <input id="DH" type="text" value="<% =DH_Formatado %>">
    <br><br>
    DataHora pro ODBC: <input id="DH_ODBC" type="text" size="30" value="<% =DH_ODBC %>">
    <br><br>
    DataHora em SQL: <input id="DH_SQL" type="text" value="<% =DH_SQL %>">
  </body>
</html>


Clique aqui pra baixar o código

Clique aqui pra abrir no navegador




http://transeberiano.brinkster.net