ASP e ADO - Fórum Visual Basic - Parte II


Na primeira parte do nosso artigo ASP e ADO - Fórum Visual Basic - Parte I   abordamos aspectos teóricos envolvendo a hospedagem do site , o banco de dados: sua estrutura e  localização ; e como fazer a conexão com nossa base de dados.

Veremos nesta segunda parte os arquivos de scripts asp que irão compor nosso fórum e como testar o site em seu computador local. Os arquivos que serão usados para criar o nosso site são os seguintes:

A tela inicial do Fórum Visual Basic exibida quando o usuário acessa o endereço pela URL do site do Fórum é a seguinte:

O arquivo que gera esta tela é o arquivo chamado default.asp. Este arquivo será executado assim que o usuário acessar o site pela URL indicada. Vejamos a seguir o código deste arquivo:

<!-- #INCLUDE FILE="config.inc"-->

<HTML>

<HEAD>

<TITLE>Fórum de Discussão Visual Basic - JcmSoft </TITLE>

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">

<LINK REL="stylesheet" HREF="forum.css">

</HEAD>

<BODY BGCOLOR="#FFFFFF" LEFTMARGIN="0" TOPMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">

<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="12" BGCOLOR="aqua">

<TR VALIGN="TOP">

<TD ALIGN="center"><H5><IMG SRC="forum.gif" WIDTH="30" HEIGHT="30" ALIGN="absmiddle" HSPACE="4">Fórum de Discussão - <%= SiteTitle %></H5></TD>

</TR>

</TABLE>

<TABLE WIDTH="90%" BORDER="0" CELLSPACING="1" CELLPADDING="12" ALIGN="CENTER">

<TR ALIGN="LEFT" VALIGN="TOP" BGCOLOR="#FFFFFF">

<TD colspan="2">

<%

' Le os detalhes de todos os forum deste site

' Mostra todos com estatisticas de acesso

Dim rsForums

Set rsForums = Connect (ForumMDB).Execute ("SELECT * FROM Forums ORDER BY Forum ASC")

rsForums.MoveFirst

%>

<table width="100%" align="center" cellspacing="0" cellpadding="6" border="1">

<tr>

<td width="60%">

<p><b>Benvindos</b>

</tr>

<%

While Not rsForums.EOF

%>

<tr>

<td><a href="forum.asp?ForumID=<%= rsForums("ForumID") %>"><B><%= rsForums("Forum") %></B></a>

<BR>

<BLOCKQUOTE>

<%= rsForums ("Description")%><BR>

<SMALL>[Mensagens: <%= rsForums("Posts") %>] [Última postagem <%= shortDate(rsForums("LastPost")) %>]</SMALL>

</BLOCKQUOTE>

</tr>

<!--<tr><td> Leia as regras de conduta do Fórum Visual Basic - <A HREF="<A

http://www15.Brinkster.com/macoratti/regras.htm" target=main>Regras de Conduta</A><BR>">-->

<tr><td>Leia as regras de conduta do Fórum Visual Basic - <A HREF=

"regras.htm" target=main >Regras de Conduta</A>

</tr></td>

<%

  rsForums.MoveNext

Wend

rsForums.Close

set rsForums=nothing

%>

</table>

</TD>

</TR>

</TABLE>

<hr color="#00FFFF">

<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="6" ALIGN="CENTER">

<TR ALIGN="CENTER" VALIGN="TOP">

<TD ALIGN="RIGHT" WIDTH="20%">

<DIV ALIGN="RIGHT"><A HREF="http://www.geocities.com/macoratti">Retorna ao Site Visual Basic

</A></DIV>

</TD>

</TR>

</TABLE>

</BODY>

</HTML>

A primeira linha do arquivo default.asp é a seguinte: <!-- #INCLUDE FILE="config.inc"-->

Nesta linha estamos fazendo a inclusão do arquivo config.inc. Lembre-se que o arquivo de INCLUDE é executado antes que ocorra qualquer processamento da página asp. O conteúdo do arquivo config.inc é o seguinte:

<% Option Explicit %>
<!-- #INCLUDE FILE="adovbs.inc" -->
<%
Response.Buffer = True
Response.Expires = -1000

' ForumMDB é o nome do seu banco de dados
' Se voce colocar o banco de dados em um diretorio diferente dos arquivos asp
' utilize a sintaxe : ../forum.mdb"
' Ex: Se colocar em um diretorio BASE , por exemplo,  use: BASE/forum.mdb"

Const ForumMDB = "forum.mdb"

' Este e o titulo do seu site
Const SiteTitle = " Visual Basic"
Const ForumID = 1   
'so temos um site 

' Dado o caminho do banco de dados a função retorna
' um objeto Connection

Function Conexao ()
  
Dim DB
   Set DB = Server.CreateObject("ADODB.Connection")
   DB.Mode = adModeReadWrite              'temos que permitir inclusao
   DB.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\macoratti\XXXX\forum.mdb")
   Set Conexao = DB

End Function

' A função ShortDate() formata uma Data em uma string
' no formato : DD MMM, YYYY.
Public Function ShortDate(dtDate)
If Not IsNull (dtDate) Then
  ShortDate = Day(dtDate) & "-" & Month(dtDate) & "-" & right(Year(dtDate),2) & " " & hour(dtdate) & ":" & minute(dtdate)
Else
  ShortDate = dtDate
End If 
End Function
%>

Este arquivo irá usar outro arquivo de INCLUDE - o arquivo : adovbs.inc que possui as constantes ADO usadas na conexão com o banco de dados. (Ex: usamos a constante adModeReadWrite.)

A função Conexao() irá fazer a conexão com o banco de dados - forum.mdb. Observe que usamos - uma string de conexão ODBC para um banco de dados Microsoft Access. Você deverá alterar o local substituindo o caminho  "\macoratti\XXXX\forum.mdb"  para o seu caso específico.

A função ShortDate(dtDate) receberá uma data e ira retornar a data formatada na forma : dd-mm-aa hh:mm.

Acho que deu para você ter uma visão geral de como você pode implementar um fórum no seu site. Para não alongar muito o artigo agora pegue os arquivos do forum implementado no Brinkster : Forum

Nota : Para acessar o fórum atual clique em : http://www.macoratti.net/forum1/

E vou ficando por aqui ; após fazer o download basta descompactar e estudar... (até o próximo artigo ASP )

Referências:


José Carlos Macoratti