Foros del Web » Programando para Internet » ASP Clásico »

Problemas con el acceso de datos

Estas en el tema de Problemas con el acceso de datos en el foro de ASP Clásico en Foros del Web. hola a todos. Estoy de practicante en una empresa y estoy desarropllando su paguina, pero me he topado con un error q no he podido ...
  #1 (permalink)  
Antiguo 26/06/2006, 12:03
 
Fecha de Ingreso: junio-2006
Mensajes: 104
Antigüedad: 18 años
Puntos: 1
Problemas con el acceso de datos

hola a todos.

Estoy de practicante en una empresa y estoy desarropllando su paguina, pero me he topado con un error q no he podido solucionar, el error es este:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Controlador ODBC Microsoft Access] Escriba su Nombre
/procesar02.asp, línea 65

Y este es el codigo:ç

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ LANGUAGE="VBSCRIPT" %>

<%
'Conectamos a la BD.
Dim oConn,strSQL
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("./comentarios.mdb"))
'oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("./comentarios.mdb")

'Con una sentencia SQL pedimos toda la BD.
Set RS = Server.CreateObject("ADODB.RecordSet")
sql = "SELECT * FROM Comentario"
RS.Open sql, oConn
%>

<html>
<head>
<title>Untitled</title>
<link rel="STYLESHEET" type="text/css" href="css/letras.css">
</head>

<body >
<form>
<%x=""%>
Nombre: <%nom=Request.Form("NombreUsuario")
If nom="" then
Response.Redirect "formulario.htm"
ElseIf nom <> x then
Response.Write(nom)
'strSQL = "insert into comentario (Nombre) values ('" & Request.Form("NombreUsuario") & "')"
'oConn.Execute "INSERT INTO comentario (Nombre) VALUES ('" & Request.Form("NombreUsuario") & "')"
RS.Requery
End If
%>
&nbsp;
<p>

Correo Electrónico: <%cor=Request.Form("correo")
If cor="" then
Response.Redirect "formulario.htm"
ElseIf cor <> x then
strSQL = "insert into comentario (correo) values ('" & Request.Form("correo") & "')"
Response.Write(cor)
End If
%>

&nbsp;
<p>

Tipo de comentario: <%Tcomen=Request.Form("TipoMensaje")
Response.Write(Tcomen)
strSQL = "insert into comentario (Tipo_Comentario) values ('" & Request.Form("TipoMensaje") & "')"
%>
&nbsp;</p>
<p>
Comentarios: <%comen=Request.Form("Comentarios")
If comen="" then
Response.Redirect"formulario.htm"
ElseIf nom <> x then
strSQL = "insert into comentario (Nombre, Comentario) values ('" & Request.Form("NombreUsuario") & "','" & Request.Form("Comentarios") & "')"
Response.Write(comen)
End If

oConn.Execute(strSQL)
oConn.Close
set oConn = nothing
%>
</p>
</Form>
</body>
</html>
en la base de datos solo me muestra el resulta del formulario comentarios, los otros 3 estan en blanco, les agradeceria su ayuda.
  #2 (permalink)  
Antiguo 26/06/2006, 12:09
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Dos preguntas:

1. Cuál es la linea 65?
2. La encuesta para qué?

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 26/06/2006, 16:21
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
si no estoy mal la linea 65 es

oConn.Execute(strSQL)


ahora yo creo que el error es que declaras 3 strSQL y ejecutas uno y pero cual???... hechale un ojo a eso...

PD: si es una burrada lo ciento... el sueño me hace mal... ademas fin de semana largo... ustedes saben o no Al o U_G o Trasgu o Tiguron... ... saludos maestros
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #4 (permalink)  
Antiguo 26/06/2006, 17:07
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Bueno, por lo poco que le ví a tu codigo, puedo comentarte que .... no tiene mucho sentido, jejeje, es decir, hipotéticamente insertarias tantos registros como parámetros recibieras (como lo observó El_Metallick -Saludos-), pero no lo haces, solo pretendes hacer el último. Creo que tu código podría resumirse a:

Código:
<%
If IsEmpty(Request.Form("NombreUsuario")) or IsEmpty(Request.Form("correo")) or IsEmpty(Request.Form("Comentarios")) Then
   Response.Redirect "formulario.htm"
End If
'Conectamos a la BD.
Dim oConn,strSQL
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("./comentarios.mdb"))
%>

<html><head><title>Untitled</title><link rel="STYLESHEET" type="text/css" href="css/letras.css">
</head>
<body>
Nombre: <%=Request.Form("NombreUsuario")%>
Correo Electrónico: <%=Response.Write(cor)%>
Tipo de comentario: <%Tcomen=Request.Form("TipoMensaje")%>
Comentarios: <%=Response.Write(comen)%>

<%
strSQL = "insert into comentario (Nombre, Comentario, Correo, Tipo_Comentario) values ('" & Request.Form("NombreUsuario") & "','" & Request.Form("Comentarios") & "', '" & Request.Form("Correo") &"', '" & Request.Form("TipoMensaje") & "')"
oConn.Execute(strSQL)

oConn.Close
set oConn = nothing
%>
</body>
</html>
Ahora, no posteaste correctamente el error, pero por la clave (0x80004005), casi siempre o es el error de la consulta actualizable (permisos a la carpeta donde esta la BD) o tienes el Access abierto cuando lo estas corriendo (se soluciona mediante los medios de apartura), pero para asegurarte necesito que postees el error correctamente.

Saludos
  #5 (permalink)  
Antiguo 29/06/2006, 03:51
 
Fecha de Ingreso: diciembre-2003
Mensajes: 141
Antigüedad: 20 años, 6 meses
Puntos: 0
Tal como comenta el compañero Myakire está perfecto. Incluso, más resumido.
Aún así, aprovechando tu código te comento una manera que utilizo a veces y es ir "montando" el string según que valores van tomando.

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ LANGUAGE="VBSCRIPT" %>

<%
'Conectamos a la BD.
Dim oConn,strSQL
Set oConn = Server.CreateObject("ADODB.Connection") 
oConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("./comentarios.mdb"))
'oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("./comentarios.mdb")

'Con una sentencia SQL pedimos toda la BD.
Set RS = Server.CreateObject("ADODB.RecordSet")
sql = "SELECT * FROM Comentario"
RS.Open sql, oConn

'Montamos el primer string de la sentencia INSERT
strSQL = "insert into comentario (Nombre, Correo, Tipo_Comentario, Comentario) values ("

%>

<html>
<head>
<title>Untitled</title>
<link rel="STYLESHEET" type="text/css" href="css/letras.css">
</head>

<body >
<form>
Nombre:
<%
nom = Request.Form("NombreUsuario")
If nom = "" then 
	Response.Redirect "formulario.htm"
Else
	Response.Write(nom)
	'Añadimos al string el valor
	strSQL = strSQL & "'" & nom & "', "
	RS.Requery
End If
%>
&nbsp;
<p>

Correo Electrónico:
<%
cor = Request.Form("correo")
If cor = "" then 
	Response.Redirect "formulario.htm"
Else
	Response.Write(cor)
	'Añadimos al string el valor
	strSQL = strSQL & "'" & cor & "', "
End If
%>

&nbsp;
<p>

Tipo de comentario:
<%
Tcomen = Request.Form("TipoMensaje")
If Tcomen = "" then
	'Añadimos al string al valor (OJO! verifica que el campo no es requerido, o acepte "null")
	strSQL = strSQL & "null, "
Else
	Response.Write(Tcomen)
	'Añadimos al string el valor
	strSQL = strSQL & "'" & Tcomen & "', "
End If
%>
&nbsp;</p>
<p>
Comentarios:
<%
comen = Request.Form("Comentarios")
If comen="" then 
	Response.Redirect"formulario.htm"
Else
	Response.Write(comen)
	'Añadimos al string el valor
	strSQL = strSQL & "'" & comen & "', "
End If

strSQL = strSQL & ")"

oConn.Execute(strSQL) 
oConn.Close 
set oConn = nothing
%>
</p>
</Form>
</body>
</html>
Pero fíjate como cambia la cantidad de código escrito entre el ejemplo anterior. No hay color (Gracias Myakire ;) )

Espero que te sirva de ayuda.
Saludos!
  #6 (permalink)  
Antiguo 29/06/2006, 11:49
 
Fecha de Ingreso: junio-2006
Mensajes: 104
Antigüedad: 18 años
Puntos: 1
Hola a todos, Muchas gracias por todos sus comentarios, me estan siendo de mucho ayuda. Pude resolver el problema hace como 2 dias,el problema era que el codigo asp hacia referencia a un campo de la BD donde era Null. en este caso era el NOMBRE.

y la encuesta no era para nada importante, solo estaba checando la pagina, y para mas informacion soy un super novato, apenas tengo 2 mese manejando FrontPage con ASP, en mi escuela no recibi la informacion completa, es mas, no me lo enseñaron, y ahora que estoy de practicas de titulacion me veo en este problema, gracias por su ayuda. Espero comprendan.
  #7 (permalink)  
Antiguo 29/06/2006, 12:55
 
Fecha de Ingreso: diciembre-2003
Mensajes: 141
Antigüedad: 20 años, 6 meses
Puntos: 0
Bueno, pues me alegro mucho. Por lo de empezar es como todo, yo lo hice con un libro al lado y dando muchos golpetazos de cabeza en el escritorio (jejeje... , que bruto)

Pues aquí estamos, para ayudarnos.

Saludos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:14.