Ver Mensaje Individual
  #3 (permalink)  
Antiguo 26/12/2007, 16:37
Avatar de DOnthewildside
DOnthewildside
 
Fecha de Ingreso: diciembre-2007
Mensajes: 6
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Insertar nuevos registros con asp y sql.

Vale, muchas gracias por responder. Aquí va el código de comentarios.asp. Verás que hay varias sentencias puestas como comentario porque estuve tratando de hacerlo de varias formas. Disculpa si no hay demasiada claridad en el código, es que lo mandé a paseo y no me dediqué a ponerlo en limpio.
Se trata simplemente de implementar una especie de libro de visitas en el que los usuarios pueden ir entrando sus comentarios. Estos comentarios se van guardando en una base de datos (Microsoft Office Access Database).
Al cargar la página se ejecuta check_database() para comprobar si existen entradas previas en la base y mostrarlas en una tabla. Como ya sabes, al hacer click en el submit 'Ok' la acción del formulario vuelve a llamar a comentarios.asp y esta vez se presentan las entradas previas más la nueva entrada. Inmediatamente (y esto es un suponer) se guarda la nueva entrada mediante save_entry(new_name,new_comment)




Código:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<% 
sub check_database()
dim conn,rs,sql
sql="select * from comentarios_hayapaz"
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
'conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/Boletín Informativo.mdb")) 
conn.open "D:/1&1WebHosting/pruebas/BabyWebServer/Boletín Informativo.mdb"
set rs=conn.execute(sql)

rs.MoveFirst
do until rs.EOF

response.write("<tr><td><font color='maroon'>" & rs("nombre") &"</font><font color='#6699CC'> dijo:</font></td></tr>")
response.write("<tr><td>" & rs("comentario") & "</td></tr>")

'for each i in rs.fields
'if i.name="Id_entrada" then  next
'Response.Write("<tr><td>" & i.name & "</td></tr> ")
'Response.Write("<tr><td>" & i.value & "</td></tr> ")
'next
'Response.Write("<br />")'

rs.movenext
loop
rs.close
set re=nothing
conn.close
set conn=nothing
end sub

sub save_entry(name,coment)
dim db_conn,sql_str,rs

set db_conn=Server.CreateObject("ADODB.Connection")
db_conn.Provider="Microsoft.Jet.OLEDB.4.0"
'db_conn.Mode=adModeReadWrite
db_conn.open "D:\1&1WebHosting\pruebas\BabyWebServer\Boletín Informativo.mdb"

sql_str="insert into comentarios_hayapaz (nombre,comentario) values (" & name & "," & coment & ");"
'sql_str=sql_str & "values ('" & request.form("name") & "',"
'sql_str=sql_str & "'" & request.form("coment") & "')"

on error resume next
set rs=db_conn.Execute(sql_str)
if error<>0 then response.write("No update permissions!!")

db_conn.close
set db_conn=nothing
end sub
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<h4><font color="#6699CC">Comentarios</font></h4>
<form action="comentarios.asp" method="post">
Nombre del miembro, fake o cosa...<br />
<input type="text" name="name" size="20"/><br />
Escriba aquí su comentario...<br />
<textarea name="coment" cols="60" rows="10"></textarea><br />
<input type="submit" value="Ok!"/>
</form>
<hr/>
<table border="0">
<!-- PRIMERO HAY QUE CHECKEAR LA BASE DE DATOS PARA VER SI HAY ENTRADAS Y PUBLICARLAS AL CARGAR LA PÁGINA-->
<!-- LUEGO HAY QUE IR INTRODUCIENDO CADA NUEVA ENTRADA EN LA BASE DE DATOS-->
<!-- LUEGO HAY QUE PUBLICAR EL COMENTARIO YA SEA EN PRIMER O EN ÚLTIMO LUGAR-->

<%
call check_database()
dim new_name,new_comment
new_name=request.form("name")
new_comment=request.form("coment")
if new_comment<>"" then
if new_name="" then new_name="anónimo"
response.write("<tr><td><font color='maroon'>" & new_name &"</font><font color='#6699CC'> dijo:</font></td></tr>")
response.write("<tr><td>" & new_comment & "</td></tr>")
call save_entry(new_name,new_comment)
else 
response.write("escriba algo")
end if
%>
</table>
</body>
</html>

Vale, pues aquí tienes el código tal cual quedó después de múltimples intentos de guardar nuevas entradas en la tabla comentarios_hayapaz Te vuelvo a pedir disculpas por el lío que hay en el código, pero es que ya ni me esperaba respuestas por parte de nadie y me has pillado desprevenido y cansado después de ciertos excesos navideños como para ponerme a revisar todo ese maldito código.

Te agradezco mucho el interés y la amabilidad.

PD: ¿por qué lamentas lo del BabyWebServer si se pueden hacer todas las pruebas del mundo hasta estar seguro de que todo está ok antes de cargarlo en un servidor real? Es por curiosidad, no sea que esté haciendo el primo y no me entere.

Gracias.