Desarrollo Web /

[ASP] Error con consulta de base

Participa en el tema [ASP] Error con consulta de base en el foro Desarrollo Web.
hola amigos tengo un problema con la respuesta de una consulta de base access que ...

Buscar en este tema:
 
  •  
    yack escribió el 02/09/2006 a las 13:49 hs.
     
    ¿Mensaje inapropiado?
    #1 [ASP] Error con consulta de base
    hola amigos

    tengo un problema con la respuesta de una consulta de base access que les paso a comentar a ver sio me pueden dar una mano, dese ya gracias.

    Contexto:

    Todos los que estamos en foros siempre estamos aprendiendo gracias a los aportes de otros, bueno mi forma de aportar en dando un servicio con una web montada en un servidor casero sobre winXP, es la unica forma de poner mas de 4Gb online sin costos, por ahora viene funcionando bien, le puse un servidor de DNS gratis y esta online en

    http://libros.freewww.info si les guntan los libros aca hay mas de 4000 titulos para bajar

    estoy intentando armar un "Top 100" de los libros mas bajados, para lo cual coloque un cuenta clicks en los link de los libros que me carga en una base los datos del link y cantidad de veces bajado, esto funciona bien, la base tiene la estructura de

    Nombre del campo - tipo de datos

    ID - autonumerico

    url - text

    clicks - numerico



    Cuando hago la consulta de la base, me responde con una tabla con los datos de los registros y la cantidad de clicks de cada link, logre darle un orden ascente y un top de 100 y luego que me genere el link para la descarga pero aca viene el lio.

    Cuando me genera el link tomando los datos de la base, lo que pasa es que como los nombres de los archivos de los libros tienen espacio, me muestra el link hasta el primer espacio que encuentra y luego lo corta ahi, quedando inclompleto.

    Todavia no le puse ningun link al publico pero para que vean el error esta aca

    http://libros.freewww.info/cuenta/bdconsultar.asp



    Abajo les dejo copiado el codigo del clicks.asp que es el que carga la base

    y el dbconsultar.asp que hace la consulta y genera el link



    Gracias a todos y saludos



    clicks.asp

    <%

    Response.Buffer=TRUE

    url = Request.Querystring("url")

    if url <>"" then

    Set oConn = Server.CreateObject("ADODB.Connection")

    oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("cuentaclicks.mdb")&";"

    strsql = "SELECT * FROM tblContador WHERE url = '" & url & "'"

    Set rs = Server.CreateObject("ADODB.RecordSet")

    RS.open strsql, oConn, 3, 3

    if rs.eof then

    rs.AddNew

    rs("clicks")= 1

    rs("url") = url

    rs.update

    else

    rs("clicks")=rs("clicks")+1

    rs.update

    end if

    rs.Close

    set rs=nothing

    oConn.Close

    response.redirect URL

    end if

    %>





    dbconsultar.asp



    <%

    '================================================= ===================================

    'Ejemplos de Base de Datos --- Carlos de la Orden Dijs --- www.aspfacil.com -- Mar/01

    '================================================= ===================================

    Dim oConn, rs, SQL

    Dim nombre

    'Creo el objeto Connection

    set oConn = Server.CreateObject("ADODB.Connection")

    'Para conectar a la base de datos, utiliza una de estas conexiones

    'Solo tienes que quitar el comentario (') a la que quieras utilizar

    'y comentar o borrar las otras líneas

    'Access con OLEDB:

    oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("cuentaclicks.mdb")

    'Access con ODBC:

    'oConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("base.mdb")

    'En mi caso, tengo la cadena de conexión en una variable de aplicación

    'oConn.Open Application("CadenaConn")

    'Para utilizar esta, tienes que tener un fichero GLOBAL.ASA con esta línea

    ' Application("CadenaConn") = ... la cadena de conexión que quieras

    'En el Sub Application_OnStart

    'Mi sentencia SQL que extrae todos los campos de la tabla 'Tabla'

    SQL="SELECT TOP 100 * FROM Tabla WHERE clicks > 1 ORDER BY clicks DESC"

    'Creo un Recordset (set rs) a partir de la ejecución de la consulta (oConn.Execute)

    set rs = oConn.Execute(SQL)

    '¿Esta vacío?

    if rs.EOF then

    Response.Write("No hay ningún registro en esta tabla")

    else

    'Llamo al procedimiento que pinta la tabla

    PintarTabla

    end if

    'Cierro el Recordset

    rs.Close

    'Destruyo el objeto

    set rs = nothing

    'Cierro la conexión

    oConn.Close

    'Destruyo la conexión

    set oConn = nothing

    '===========================================

    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>Libros</B></TD>" & vbCrlf )

    Response.Write( "<TD><B>Descargas</B></TD>" & vbCrlf )

    Response.Write( "</TR>" & 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><a href="& rs.Fields("url") &">link</a>" & rs.Fields("url") & "</TD>" )

    Response.Write( "<TD>" & rs.Fields("clicks") & "</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 12, voy borrando...

    while iCuantos > 12

    rs.MoveFirst

    rs.Delete

    rs.Update

    iCuantos = iCuantos - 1

    wend

    'Ahora si, cierro el Recordset

    rs.Close

    End Sub

    %>
    +
     
    0
    Me gusta
     
    http://www.psicofxp.com/forums/desarrollo-web.264/377402-asp-error-con-consulta-de-base.html
    | Más
  • maximz escribió el 07/09/2006 a las 14:45 hs. ¿Mensaje inapropiado?

    #2 Re: Error con consulta de base

    Hola,

    El error lo tenes en esta linea:

    Código:
    Response.Write( "<TD><a href="& rs.Fields("url") &">link</a>" & rs.Fields("url") & "</TD>" )
    
    reemplazala por

    Código:
    Response.Write( "<TD><a href='"& rs.Fields("url") &"'>link</a>" & rs.Fields("url") & "</TD>" )
    
    Aparte de esto configurá el servidor para permitir mayor número de conexiones simultaneas, tirando un número al azar 30 estaría bien, supongo q tenes adsl, el limite de upload en general es de 256kbits, en bytes sería 32kb máximo y con viento a favor, te digo 30 para q sean conexiones útiles si tenes una máquina mediana podes poner muchisimas más, 1500 por ejemplo, pero no sería muy utiles, sólo q no les aparecería la página de error en ese caso, siempre q llegue a servirlas y no se agote el tiempo de espera.
    No te puedo ayudar mucho en ese server porque no lo manejo mucho, preguntá en el foro IT q lo único q conocen es de windows.

    Por otra parte te felicito, muy buena la página y no descartes de utilizar torrent en el futuro para aumentar el nivel de download, haciendo de tracker.

    Espero que te sirva.

    Saludos
    Me gusta este mensaje


Estadísticas del tema
  • 1 RESPUESTA
  • 1493 VISTAS
  • 2 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB