
01/03/2003, 21:10
|
| | Fecha de Ingreso: diciembre-2001
Mensajes: 118
Antigüedad: 23 años, 3 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. |