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

Donde está el error?

Estas en el tema de Donde está el error? en el foro de ASP Clásico en Foros del Web. Código: <HTML> <HEAD> <TITLE>UNA PRUEBA</TITLE> <h2><center>Una prueba23</center></h2> <% 'Declaramos las variables Dim sDia, sTitol1, sTitol2, sTitol3, sTitol4, sTitol5, sTitol6, sText1, sText2, sText3, sText4, sText5, sText6 ...
  #1 (permalink)  
Antiguo 01/03/2003, 21:10
 
Fecha de Ingreso: diciembre-2001
Mensajes: 118
Antigüedad: 22 años, 5 meses
Puntos: 0
Donde está el error?

Código:
<HTML>
<HEAD>
<TITLE>UNA PRUEBA</TITLE>
<h2><center>Una prueba23</center></h2>
<%
'Declaramos las variables
Dim sDia, sTitol1, sTitol2, sTitol3, sTitol4, sTitol5, sTitol6, sText1, sText2, sText3, sText4, sText5, sText6
Dim oConn, rs, SQL, iCuantos, iRegistro


'Trim elimina los espacios en blanco a derecha e izquierda
sDia = Trim(Request.Form("Dia"))
sTitol1 = Trim(Request.Form("Titol1"))
sTitol2 = Trim(Request.Form("Titol2"))
sTitol3 = Trim(Request.Form("Titol3"))
sTitol4 = Trim(Request.Form("Titol4"))
sTitol5 = Trim(Request.Form("Titol5"))
sTitol6 = Trim(Request.Form("Titol6"))
sText1 = Trim(Request.Form("Text1"))
sText2 = Trim(Request.Form("Text2"))
sText3 = Trim(Request.Form("Text3"))
sText4 = Trim(Request.Form("Text4"))
sText5 = Trim(Request.Form("Text5"))
sText6 = Trim(Request.Form("Text6"))

'Si esta variable está vacía
'es que no hemos enviado el formulario
'así que lo muestro
if Len(sTexto) = 0 then
	
	Formulario
else
	'Tengo ya un nombre para insertar
	'Creo los objetos Connection y Recordset
	set oConn =  Server.CreateObject("ADODB.Connection")
	set rs = Server.CreateObject("ADODB.Recordset")

oConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../Data/dilluns.mdb")
	'En mi caso, utilizo una cadena de conexión para el SQL Server
	'SELECT * FROM ... devuelve todas las filas de la tabla
	SQL="SELECT * FROM dilluns ORDER BY Id"
	'Abro el Recordset con la sentencia SQL
	'definiendo oConn como el objeto Connection
	'y cursor 1 y lock(cerrojo) 2
	rs.Open SQL, oConn, 1, 2
	'Añado uno nuevo: a partir de ahora metos los datos del nuevo registro
	rs.AddNew
	rs.Fields("Dia")=sDia
	rs.Fields("Titol1")=sTitol1
	rs.Fields("Titol2")=sTitol2
	rs.Fields("Titol3")=sTitol3
	rs.Fields("Titol4")=sTitol4
	rs.Fields("Titol5")=sTitol5
	rs.Fields("Titol6")=sTitol6
	rs.Fields("Text1")=sText1
	rs.Fields("Text2")=sText2
	rs.Fields("Text3")=sText3
	rs.Fields("Text4")=sText4
	rs.Fields("Text5")=sText5
	rs.Fields("Text6")=sText6
	'Guardo los cambios
	rs.Update
	'Después de guardar, el campo autonumérico
	'ya está disponible
	iRegistro = rs.Fields("Id")

	Response.Write("<P>El registro <b>" & iRegistro & "</b> ha sido insertado")
	'Me muevo al primero
	rs.MoveFirst
	'Y pinto la tabla
	PintarTabla

	'Cierro y destruyo objetos
	rs.Close
	'Antes llamo a mantenimiento!
	Mantenimiento
	set rs = nothing
	oConn.Close
	set oConn = nothing

end if

'========================================================
Sub Formulario
'Imprimo por pantalla el formulario
Response.Write("<FORM ACTION=""bdform2.asp"" METHOD=""post"">" & vbCrlf)
Response.Write("<P>Data:<br>" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Dia"" SIZE=""30"">" & vbCrlf)
Response.Write("<P>Titol i Text 6:<br>" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Titol1"" SIZE=""30"">" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Text1"" SIZE=""30"">" & vbCrlf)
Response.Write("<P>Titol i Text 5:<br>" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Titol2"" SIZE=""30"">" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Text2"" SIZE=""30"">" & vbCrlf)
Response.Write("<P>Titol i Text 4:<br>" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Titol3"" SIZE=""30"">" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Text3"" SIZE=""30"">" & vbCrlf)
Response.Write("<P>Titol i Text 3:<br>" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Titol4"" SIZE=""30"">" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Text4"" SIZE=""30"">" & vbCrlf)
Response.Write("<P>Titol i Text 2:<br>" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Titol5"" SIZE=""30"">" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Text5"" SIZE=""30"">" & vbCrlf)
Response.Write("<P>Titol i Text 1:<br>" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Titol6"" SIZE=""30"">" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Text6"" SIZE=""30"">" & vbCrlf)
Response.Write("<INPUT TYPE=""submit"" VALUE=""Guardar"">" & vbCrlf)
Response.Write("</FORM>")

End Sub 'Formulario
'===========================================
Sub PintarTabla ()
'Utiliza el objeto rs abierto
'para pintar la tabla

'La primera fila la escribo directamente, con
'los nombres de los campos
Response.Write( "<TABLE BORDER=""1"">" & vbCrlf)
Response.Write( "<TR>" & vbCrlf)
Response.Write( "<TD><B>Id</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Data</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Titol1</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Text1</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Titol2</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Text2</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Titol3</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Text3</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Titol4</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Text4</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Titol5</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Text5</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Titol6</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Text6</B></TD>" & vbCrlf )




'Hasta que llegue al final del recordset...
while not rs.EOF
	'Imprimo una fila de la tabla
	'para cada registro que encuentre
	Response.Write( "<TR>" & vbCrlf )
	Response.Write( "<TD>" & rs.Fields("Id") & "</TD>" )
	Response.Write( "<TD>" & rs.Fields("Dia") & "</TD>" )
	Response.Write( "<TD>" & rs.Fields("Titol1") & "</TD>" )
	Response.Write( "<TD>" & rs.Fields("Text1") & "</TD>" )
	Response.Write( "<TD>" & rs.Fields("Titol2") & "</TD>" )
	Response.Write( "<TD>" & rs.Fields("Text2") & "</TD>" )
	Response.Write( "<TD>" & rs.Fields("Titol3") & "</TD>" )
	Response.Write( "<TD>" & rs.Fields("Text3") & "</TD>" )
	Response.Write( "<TD>" & rs.Fields("Titol4") & "</TD>" )
	Response.Write( "<TD>" & rs.Fields("Text4") & "</TD>" )
	Response.Write( "<TD>" & rs.Fields("Titol5") & "</TD>" )
	Response.Write( "<TD>" & rs.Fields("Text5") & "</TD>" )
	Response.Write( "<TD>" & rs.Fields("Titol6") & "</TD>" )
	Response.Write( "<TD>" & rs.Fields("Text6") & "</TD>" )
	Response.Write( "</TR>" & vbCrlf )
	'MUY IMPORTANTE!!!!!
	'Pasamos al siguiente registro
	rs.MoveNext
	'Olvidarte esto significa que vas a imprimir
	'siempre el mismo registro... Un bucle infinito!
wend
'Cierro la tabla
Response.Write("</TABLE>")

End Sub 'PintarTabla
'===========================================
Sub Mantenimiento
'Para mantener la tabla en un tamaño manejable...
rs.Open SQL, oConn, 1, 2
'RecordCount me devuelve el nº de registros
iCuantos = rs.RecordCount

'Si tengo más de 7, voy borrando...
while iCuantos > 7

	rs.MoveFirst
	rs.Delete
	rs.Update
	iCuantos = iCuantos - 1

wend
'Ahora si, cierro el Recordset
rs.Close
End Sub
%>
Este codigo lo sace de ASP Facil, pero lo ajuste a mis necesidades (le agregé más variables) lo que pasa es que ahora, cuando pulso la tecla de envio del formulario, no se imprime en pantalla los resultados ni se almacenan los datos en la base. Donde está el error?

GRACIAS.
  #2 (permalink)  
Antiguo 04/03/2003, 19:33
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 4 meses
Puntos: 5
Te invito a que edites tu mensaje marcando en "Negritas" las lineas que has modificado, y es probable que alguien pueda ayudarte, ya que leer TOOODO el codigo... no siempre se tiene tiempo...

__________________
Manoloweb
  #3 (permalink)  
Antiguo 05/03/2003, 18:16
 
Fecha de Ingreso: diciembre-2001
Mensajes: 118
Antigüedad: 22 años, 5 meses
Puntos: 0
<HTML>
<HEAD>
<TITLE>UNA PRUEBA</TITLE>
<h2><center>Una prueba23</center></h2>
<%
'Declaramos las variables
Dim sDia, sTitol1, sTitol2, sTitol3, sTitol4, sTitol5, sTitol6, sText1, sText2, sText3, sText4, sText5, sText6
Dim oConn, rs, SQL, iCuantos, iRegistro


'Trim elimina los espacios en blanco a derecha e izquierda
sDia = Trim(Request.Form("Dia"))
sTitol1 = Trim(Request.Form("Titol1"))
sTitol2 = Trim(Request.Form("Titol2"))
sTitol3 = Trim(Request.Form("Titol3"))
sTitol4 = Trim(Request.Form("Titol4"))
sTitol5 = Trim(Request.Form("Titol5"))
sTitol6 = Trim(Request.Form("Titol6"))
sText1 = Trim(Request.Form("Text1"))
sText2 = Trim(Request.Form("Text2"))
sText3 = Trim(Request.Form("Text3"))
sText4 = Trim(Request.Form("Text4"))
sText5 = Trim(Request.Form("Text5"))
sText6 = Trim(Request.Form("Text6"))


'Si esta variable está vacía
'es que no hemos enviado el formulario
'así que lo muestro
if Len(sTexto) = 0 then

Formulario
else
'Tengo ya un nombre para insertar
'Creo los objetos Connection y Recordset
set oConn = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.Recordset")

oConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../Data/dilluns.mdb ")
'En mi caso, utilizo una cadena de conexión para el SQL Server
'SELECT * FROM ... devuelve todas las filas de la tabla
SQL="SELECT * FROM dilluns ORDER BY Id"
'Abro el Recordset con la sentencia SQL
'definiendo oConn como el objeto Connection
'y cursor 1 y lock(cerrojo) 2
rs.Open SQL, oConn, 1, 2
'Añado uno nuevo: a partir de ahora metos los datos del nuevo registro
rs.AddNew
rs.Fields("Dia")=sDia
rs.Fields("Titol1")=sTitol1
rs.Fields("Titol2")=sTitol2
rs.Fields("Titol3")=sTitol3
rs.Fields("Titol4")=sTitol4
rs.Fields("Titol5")=sTitol5
rs.Fields("Titol6")=sTitol6
rs.Fields("Text1")=sText1
rs.Fields("Text2")=sText2
rs.Fields("Text3")=sText3
rs.Fields("Text4")=sText4
rs.Fields("Text5")=sText5
rs.Fields("Text6")=sText6

'Guardo los cambios
rs.Update
'Después de guardar, el campo autonumérico
'ya está disponible
iRegistro = rs.Fields("Id")

Response.Write("<P>El registro <b>" & iRegistro & "</b> ha sido insertado")
'Me muevo al primero
rs.MoveFirst
'Y pinto la tabla
PintarTabla

'Cierro y destruyo objetos
rs.Close
'Antes llamo a mantenimiento!
Mantenimiento
set rs = nothing
oConn.Close
set oConn = nothing

end if

'=================================================
=======
Sub Formulario
'Imprimo por pantalla el formulario
Response.Write("<FORM ACTION=""bdform2.asp"" METHOD=""post"">" & vbCrlf)
Response.Write("<P>Data:<br>" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Dia"" SIZE=""30"">" & vbCrlf)
Response.Write("<P>Titol i Text 6:<br>" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Titol1"" SIZE=""30"">" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Text1"" SIZE=""30"">" & vbCrlf)
Response.Write("<P>Titol i Text 5:<br>" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Titol2"" SIZE=""30"">" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Text2"" SIZE=""30"">" & vbCrlf)
Response.Write("<P>Titol i Text 4:<br>" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Titol3"" SIZE=""30"">" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Text3"" SIZE=""30"">" & vbCrlf)
Response.Write("<P>Titol i Text 3:<br>" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Titol4"" SIZE=""30"">" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Text4"" SIZE=""30"">" & vbCrlf)
Response.Write("<P>Titol i Text 2:<br>" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Titol5"" SIZE=""30"">" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Text5"" SIZE=""30"">" & vbCrlf)
Response.Write("<P>Titol i Text 1:<br>" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Titol6"" SIZE=""30"">" & vbCrlf)
Response.Write("<INPUT TYPE=""text"" NAME=""Text6"" SIZE=""30"">" & vbCrlf)

Response.Write("<INPUT TYPE=""submit"" VALUE=""Guardar"">" & vbCrlf)
Response.Write("</FORM>")

End Sub 'Formulario
'===========================================
Sub PintarTabla ()
'Utiliza el objeto rs abierto
'para pintar la tabla

'La primera fila la escribo directamente, con
'los nombres de los campos
Response.Write( "<TABLE BORDER=""1"">" & vbCrlf)
Response.Write( "<TR>" & vbCrlf)
Response.Write( "<TD><B>Id</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Data</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Titol1</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Text1</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Titol2</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Text2</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Titol3</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Text3</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Titol4</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Text4</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Titol5</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Text5</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Titol6</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Text6</B></TD>" & vbCrlf )




'Hasta que llegue al final del recordset...
while not rs.EOF
'Imprimo una fila de la tabla
'para cada registro que encuentre
Response.Write( "<TR>" & vbCrlf )
Response.Write( "<TD>" & rs.Fields("Id") & "</TD>" )
Response.Write( "<TD>" & rs.Fields("Dia") & "</TD>" )
Response.Write( "<TD>" & rs.Fields("Titol1") & "</TD>" )
Response.Write( "<TD>" & rs.Fields("Text1") & "</TD>" )
Response.Write( "<TD>" & rs.Fields("Titol2") & "</TD>" )
Response.Write( "<TD>" & rs.Fields("Text2") & "</TD>" )
Response.Write( "<TD>" & rs.Fields("Titol3") & "</TD>" )
Response.Write( "<TD>" & rs.Fields("Text3") & "</TD>" )
Response.Write( "<TD>" & rs.Fields("Titol4") & "</TD>" )
Response.Write( "<TD>" & rs.Fields("Text4") & "</TD>" )
Response.Write( "<TD>" & rs.Fields("Titol5") & "</TD>" )
Response.Write( "<TD>" & rs.Fields("Text5") & "</TD>" )
Response.Write( "<TD>" & rs.Fields("Titol6") & "</TD>" )
Response.Write( "<TD>" & rs.Fields("Text6") & "</TD>" )

Response.Write( "</TR>" & vbCrlf )
'MUY IMPORTANTE!!!!!
'Pasamos al siguiente registro
rs.MoveNext
'Olvidarte esto significa que vas a imprimir
'siempre el mismo registro... Un bucle infinito!
wend
'Cierro la tabla
Response.Write("</TABLE>")

End Sub 'PintarTabla
'===========================================
Sub Mantenimiento
'Para mantener la tabla en un tamaño manejable...
rs.Open SQL, oConn, 1, 2
'RecordCount me devuelve el nº de registros
iCuantos = rs.RecordCount

'Si tengo más de 7, voy borrando...
while iCuantos > 7

rs.MoveFirst
rs.Delete
rs.Update
iCuantos = iCuantos - 1

wend
'Ahora si, cierro el Recordset
rs.Close
End Sub
%>
  #4 (permalink)  
Antiguo 05/03/2003, 22:21
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 5 meses
Puntos: 11
Pon el error y la linea de codigo a la que marca el error.

Asi es mas facil llegarle. Por que a ciegas...
  #5 (permalink)  
Antiguo 08/03/2003, 17:04
 
Fecha de Ingreso: diciembre-2001
Mensajes: 118
Antigüedad: 22 años, 5 meses
Puntos: 0
Pues esa es otra, es que cuando le doy al boton de enviar, ni sale ningun mensaje de error, ni hace lo que tendria que hacer, puntar la tabla conlos datos insertados en la bd. Simplemente hace un refresh vaciando todos los campos que anteriormente habia rellenado.

Y descargo la bd para comprovar si ha escrito algo, y no, sigue completamente vacia.

Gracias
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:22.