| ||||
Re: Insertar nuevos registros con asp y sql. Ok, siento mucho que tengas que usar el baby web server je jeje, pon tu código y con gusto le damos una revisada, trabajas con SQL? Saludos
__________________ "El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera." -- Ernest Hemingway |
| ||||
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í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. |
| ||||
Re: Insertar nuevos registros con asp y sql. A verm así rápidamente, aquí hay un error:
Código:
Deberias utilizar comillas simples para los strings a insertar:sql_str="insert into comentarios_hayapaz (nombre,comentario) values (" & name & "," & coment & ");"
Código:
Si no resulta, comenta la linea de "on error resume next" pues es la que está previniendo a tu aplicación de mostrar el error.sql_str="insert into comentarios_hayapaz (nombre,comentario) values ('" & name & "','" & coment & "')" Lo del baby web server es solo una opinión muy personal, hace un tiempo me ví forzado a utilizarlo y la verdad quedé loco, pero si a tí te funciona, que mejor ![]() Salud
__________________ "El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera." -- Ernest Hemingway |
| ||||
Re: Insertar nuevos registros con asp y sql. Buenas noches pues ![]()
__________________ "El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera." -- Ernest Hemingway |