Escrito por WebExperto el Viernes 03 de Mayo de 2002 a las 00:00hs
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
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("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
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 "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & 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...
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("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
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. En los próximos artículos sobre ASP vamos a mostrarle cómo realizar una paginación de resultados, para hacer más vistosos los listados.
Si lo desean, pueden descargar los código fuente en un archivo ZIP.
Hola amigos alguien puede ser tan amable de pasarlo al ejemplo a asp.net desde ya el que me quiere ayudar se lo agradeceria mucho.
saludos.
Una pregunta, que tan seguro es este formulario ante el ataque de inyección de código SQL o cual sería las precauciones que debería de tomar para evitar este ataque en el ejemplo proporcionado en este artículo.
no anda salame
Una pregunta para que me con Response.Write me aparezca "CAMPO VACIO" si el campo no tiene ningun registro. gracias.
Me ha funcionado bien la solución. Ahora tengo otro problema.
Al crear las páginas asp y formulario para poder modificar las noticias tengo el problema de ¿cómo guardar sobre un registro existente?
ya eliminé el rst.Addnew, creo que mi problema pasa por seleccionar el registro
hola hice todo lo que sale en la pagina pero me da el mismo error que a LITOS error [HTTP 500.100 como se soluciona.....
me podrias ayudar por favor
Cómo podría evitar el error [HTTP 500.100 - No se puede actualizar. Base de datos u objeto de sólo lectura] que me aparece al intentar guardar noticias en el Access.