Lo que vamos a hacer, es
básicamente un sistema de noticias para un sitio
web, programado en ASP y utilizando bases de datos
Access.
Archivos a
utilizar
noticias.mdb: la base de
datos
formulario.htm: el formulario en donde
ingresaremos los datos de la
noticia
agrega_noticia.asp: el encargado de
procesar el formulario
listado.asp: para listar
todas las noticias
noticia.asp: para ver la
noticia
noticias.mdb
Dentro de este archivo creamos
una nueva Tabla llamada Noticias con los siguientes campos: id (autonumérico),
titulo (texto), copete (memo) y noticia
(memo):
formulario.htm
El formulario es una simple
página html, que permite ingresar los datos
Título, Copete y Noticia, e ingresarlos a la base
de datos.
<form method="POST"
action="agrega_noticia.asp">
<p>Ttiulo:<br>
<input
type="text" name="titulo"
size="40"></p>
<p>Copete:<br>
<input
type="text" name="copete"
size="40"></p>
<p>Noticia:<br>
<textarea
rows="4" name="noticia"
cols="30"></textarea></p>
<p><input
type="submit" value="Ingresar noticia"
name="enviar"></p>
</form>
agrega_noticia.asp
En el formulario notamos que el action es igual a agrega_noticia.asp. Gracias a
este archivo podemos procesar los datos ingresados
en el formulario y volcarlos dentro de la base de
datos
<%
Response.Buffer =
true
dim cnn,rst
' Creamos la conexión a la
base de datos sin DSN
set cnn =
Server.CreateObject("ADODB.Connection")
set rst
=
Server.CreateObject("ADODB.RecordSet")
cnn.Open
"Driver={Microsoft Access Driver (*.mdb)}; DBQ="
& Server.MapPath("noticias.mdb")
sqltext =
"SELECT * FROM Noticias"
rst.Open
sqltext,cnn,3,3
'Recogemos los datos y
validamos que no haya ningun campo vacio
dim
titulo, copete, noticia
titulo =
Request.Form("titulo")
copete =
Request.Form("copete")
noticia =
Request.Form("noticia")
if copete = "" or
titulo ="" or noticia ="" then
error = "Debe
completar todos los datos."
Response.Write
error
Response.End
end if
'Si está
todo correcto, procedemos a ingresar los datos a
la base de
datos
rst.AddNew
rst("titulo") =
titulo
rst("copete") = copete
rst("noticia")
= noticia
rst.update
'Terminamos e
imprimimos un mensaje
Response.Write "La
noticia se ha ingresado con exito"
%>
listado.asp
Lo que hará este archivo es
listar las noticias, ordenadas por el ID Desc (de
último a primero). Se podría realizar una
paginación, peor eso lo veremos en un próximo
artículo. El código del listado quedaría así:
<html>
<head>
<title>Listado
de
noticias</title>
</head>
<body>
<%
'Abre
la conexion con la base de datos a traves de una
conexion ODBC
Set con =
Server.CreateObject("ADODB.Connection")
con.Open
"Driver={Microsoft Access Driver (*.mdb)}; DBQ="
&
Server.MapPath("noticias.mdb")
'Ejecuta un
sentencia SQL de consulta
sql = "SELECT * FROM
Noticias ORDER BY id DESC"
Set result =
con.Execute(sql)
'Recorre todas las filas del
resultado
Do While Not result.EOF
' Muestra
la fila actual
Response.Write
"<p><b><font face=Verdana
size=1><a href=noticia.asp?id="
&result.Fields("id") &
">"&result.Fields("titulo")&"</a></b><br><font
color=""#696969"">• "
&result.Fields("copete") &
"</font></font></p>"
'Pasa
a la siguiente
fila
result.MoveNext
Loop
'Libera
memoria
result.Close
Set result =
Nothing
con.Close
Set con =
Nothing
%>
</body>
</html>
noticia.asp
Por último, este archivo se
encarga de mostrar la noticia de acuerdo al valor
de ID, ejemplo:
noticia.asp?id=1, mostrará la
noticia con el ID 1
noticia.asp?id=1454,
mostrará la noticia con el ID 1454
Igualmente, al armar el
listado, los links a las noticia ya vienen
definidos con el valor correspondiente.
<%
Set con =
Server.CreateObject("ADODB.Connection")
con.Open
"Driver={Microsoft Access Driver (*.mdb)}; DBQ="
& Server.MapPath("noticias.mdb")
sql =
"SELECT * FROM Noticias WHERE id=" &
Request.QueryString("id") & ""
'Ejecuta
un sentencia SQL de consulta
'Recorre todas las
filas del resultado
set result =
Con.Execute(sql)
%>
<html>
<head>
<title>Página
nueva
</title>
</head>
<body>
<p><font
face="Arial" size="5"
color="#0080C0"><%=result("titulo")%></font></p>
<p><font
face="Arial"
size="2"><strong><%=result("copete")%></strong></font></p>
<p><font
face="Arial"
size="2"><%=result("noticia")%></font></p>
</body>
</html>
Bueno, este fue un ejemplo
sencillo de como armar un sistema de noticias en
ASP.
|