

| ||||
Espero que te sirva este pequeño ejemplo <% 'Comienzo del programa de captura de datos set oConn = Server.CreateObject("ADODB.Connection") set rs = Server.CreateObject("ADODB.Recordset") 'Para conectar a la base de datos, utiliza una de estas conexiones 'Access con OLEDB: oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= " & Server.MapPath("base.mdb") 'SELECT * FROM ... devuelve todas las filas de la tabla SQL="SELECT * FROM TablaEjemplo ORDER BY Id" 'Abro el Recordset con la sentencia SQL 'definiendo oConn como el objeto Connection 'y cursor 1 y lock(cerrojo) 2 'Identifica el tipo del Browsner que usa el cliente '=========================================== rs.Open SQL, oConn, 1, 2 'Añado uno nuevo: a partir de ahora metos los datos del nuevo registro rs.AddNew rs.Fields("Fecha")=Date rs.Fields("IP") = Request.ServerVariables("REMOTE_ADDR") rs.Fields("Software") = Request.ServerVariables("SERVER_SOFTWARE") str_varserver=request.servervariables("http_user_a gent") response.write "PROGRAMA DE MATENIMIENTO DE PC" str_temp=mid(str_varserver,instr(str_varserver,"(" )+1) str_temp=mid(str_temp,1,instr(str_temp,")")-1) mat=split(str_temp,";") explorador=mid(str_varserver,1,instr(str_varserver ,"(")-1)+mat(1) rs.Fields("Internet Explorer") = explorador rs.Fields("Sistema Operativo") = trim(mat(2)) xy=len(request.servervariables("http_user_agent")) if xy<=55 then rs.Fields("Service Pack") = "No tiene instalado el Ser Pack" else rs.Fields("Service Pack") = trim(mat(3)) end if 'Guardo los cambios rs.Update 'Después de guardar, el campo autonumérico 'ya está disponible 'iRegistro = rs.Fields("Id") '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 PintarTabla () 'Utiliza el objeto rs abierto 'para pintar la tabla Response.Write( "<TABLE BORDER=""1"">" & vbCrlf) Response.Write( "<TR>" & vbCrlf) Response.Write( "<TD><B>Id</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Fecha</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Dirección IP</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Internet Explorer</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Sistema Operativo</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Service Pack</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Software</B></TD>" & vbCrlf ) 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("Fecha") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("IP") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Internet Explorer") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Sistema Operativo") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Service Pack") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Software") & "</TD>" ) Response.Write( "</TR>" & vbCrlf ) '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 10000, voy borrando... while iCuantos > 10000 rs.MoveFirst rs.Delete rs.Update iCuantos = iCuantos - 1 wend 'Ahora si, cierro el Recordset rs.Close End Sub %> |