Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Votazione con stelline, problema con campo memo

    Ho questo script per il sistema di votazione con le steline e funziona tutto ok, tranne che in un caso, ovvero quando si da il primo voto!!!

    Questo codice è modificato rispetto all'originale (e completamente funzionante) nel fatto che i record del database contengono anche un campo memo e quindi con del testo superiore a 255 caratteri e a quanto pare questa cosa manda in tilt il codice che mi restituisce un errore 500.

    Avete idea di come risolverlo o aggirare il problema?

    Codice PHP:

    <%
    if 
    Request.QueryString("mode") = "votato" then 
    %>
    <
    html>
    <
    head
    <
    title>Grazie!</title>
    <
    script language="javascript"
    function 
    chiudireload() { 
    window.close(); 

    </script>
    </head>
    <body background="../img/stripe_b.gif">
    <div align="center">
      <center>
    <table width="270" border="0" cellspacing="0" cellpadding="0" height="175" style="border-collapse: collapse" bordercolor="#111111">
      <tr> 
        <td align="center" height="175"><font face="Arial">Grazie per aver votato.


          </font>
          <form>
            <font face="Arial">
            <input type="button" value="Chiudi" name="B1" onclick="chiudireload()" >
          </form>
        </td>
      </tr>
    </table>
      </center>
    </div>
    <% else %>

    <%
    if Request.QueryString("mode") = "vota" then 
    %>

    <%

    Dim rsLink__ID


    ConnR_String = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../mdb-database/books-prova.mdb")
        Set ConnR=Server.CreateObject("ADODB.Connection")
        ConnR.Open ConnR_String

    rsLink__ID = "1"
    if (Request.QueryString("id") <> "") then rsLink__ID = Request.QueryString("id")
    %>
    <%
    set rsLink = Server.CreateObject("ADODB.Recordset")
    rsLink.ActiveConnection = ConnR_String
    rsLink.Source = "SELECT *, (LINK_RATE/NO_RATES) AS RATING  FROM Libri  WHERE ID = " + Replace(rsLink__ID, "'", "''") + ""
    rsLink.CursorType = 0
    rsLink.CursorLocation = 2
    rsLink.LockType = 3
    rsLink.Open()
    rsLink_numRows = 0
    %>



    <title>Vota per: <%=(rsLink.Fields.Item("titolo_libro").Value)%></title>
    <body background="../img/stripe_b.gif">

    </font>


    <table width="100%" border="0" cellspacing="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#111111" height="158">
      <tr> 
        <td align="center" height="43"> 
          <script language="JavaScript">
    <!-- Hide from older browsers
    // Function to add the rating to the database
    function Rating(star) {

        if (star != "") self.location.href = "rating.asp?ID=<%=(rsLink.Fields.Item("ID").Value)%>&Input=Vota&rate_value=" + star;
        return true;
    }
    // -->
          </script>
          <font face="Arial" size="2">Vota:
    <%=(rsLink.Fields.Item("titolo_libro").Value)%></font>

    </td>
      </tr>
      <tr>
        <td height="115">
          <table border="0" cellspacing="0" cellpadding="2" align="center">
            <tr> 
              <td><font face="Arial">[url="JavaScript:Rating('1')"][img]star_pieno.gif[/img][img]star_vuoto.gif[/img][img]star_vuoto.gif[/img][img]star_vuoto.gif[/img][img]star_vuoto.gif[/img][/url]</font></td>
              <td><font face="Arial" size="2">Mediocre</font></td>
            </tr>
            <tr> 
              <td><font face="Arial">[url="JavaScript:Rating('2')"][img]star_pieno.gif[/img][img]star_pieno.gif[/img][img]star_vuoto.gif[/img][img]star_vuoto.gif[/img][img]star_vuoto.gif[/img][/url]</font></td>
              <td><font face="Arial" size="2">Sufficiente</font></td>
            </tr>
            <tr> 
              <td><font face="Arial">[url="JavaScript:Rating('3')"][img]star_pieno.gif[/img][img]star_pieno.gif[/img][img]star_pieno.gif[/img][img]star_vuoto.gif[/img][img]star_vuoto.gif[/img][/url]</font></td>
              <td><font face="Arial" size="2">Discreto</font></td>
            </tr>
            <tr> 
              <td><font face="Arial">[url="JavaScript:Rating('4')"][img]star_pieno.gif[/img][img]star_pieno.gif[/img][img]star_pieno.gif[/img][img]star_pieno.gif[/img][img]star_vuoto.gif[/img][/url]</font></td>
              <td><font face="Arial" size="2">Buono</font></td>
            </tr>
            <tr> 
              <td><font face="Arial">[url="JavaScript:Rating('5')"][img]star_pieno.gif[/img][img]star_pieno.gif[/img][img]star_pieno.gif[/img][img]star_pieno.gif[/img][img]star_pieno.gif[/img][/url]</font></td>
              <td><font face="Arial"><font size="2">Ottimo</font></td>
            </tr>
          </table>
        </td>
      </tr>
    </table>
    <%
    ConnR.Close
    set ConnR = nothing
    rsLink.Close()
    %>
    <%
    else
    %>


    <%intSiteID = CInt(Request.QueryString("ID"))

    if Request.Cookies("rate_value")("Site" & intSiteID) = "True" then %>
    <title>Non valido!</title>
    <body background="../img/stripe_b.gif">
    </font>
    <div align="center">
      <center>
    <table wIDth="270" border="0" cellspacing="0" cellpadding="0" height="185" style="border-collapse: collapse" bordercolor="#111111">
      <tr> 
        <td align="center" height="185"><font face="Arial">Hai già votato  quest'opera![b]


          [/b] 
          </font> 
          <form>
            [b] 
            <font face="Arial"> 
            <input type="button" value="Chiudi" name="B1" onClick="window.close()">
            </font>
            [/b] 
          </form>
        </td>
      </tr>
    </table>
      </center>
    </div>

    <%else %>

    <%
    Response.Cookies("rate_value")("Site" & intSiteID) = "True"
    Response.Cookies("rate_value").Expires = Now() + 1
    %>
    <%

    Dim ConnR_String,ConnR


    ConnR_String = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../mdb-database/books-prova.mdb")
        Set ConnR=Server.CreateObject("ADODB.Connection")
        ConnR.Open ConnR_String


    if(Request.QueryString("rate_value") <> "") then cmdRating__varRATE = Request.QueryString("rate_value")

    if(Request.QueryString("id") <> "") then cmdRating__varID = Request.QueryString("id")

    %>
    <%
    set cmdRating = Server.CreateObject("ADODB.Command")
    cmdRating.ActiveConnection = ConnR_String
    cmdRating.CommandText = "UPDATE Libri  SET LINK_RATE = LINK_RATE + " + Replace(cmdRating__varRATE, "'", "''") + ", NO_RATES = NO_RATES + 1  WHERE ID = " + Replace(cmdRating__varID, "'", "''") + ""
    cmdRating.CommandType = 1
    cmdRating.CommandTimeout = 0
    cmdRating.Prepared = true
    cmdRating.Execute()

    Response.Redirect "rating.asp?mode=votato"

    ConnR.Close
    set ConnR = nothing
    %>

    <%
    End if
    End if
    End if
    %> 

  2. #2

  3. #3
    Giustamente


    Allora questo è quelo che mi compare( in realtà la pagina è bianca ma prelevando l'html, questo è il risultato)

    <title>Vota per: <font face="Arial" size=2>


    Microsoft OLE DB Provider for ODBC Drivers</font> <font face="Arial" size=2>error '80004005'</font>



    <font face="Arial" size=2>[Microsoft][ODBC Microsoft Access Driver]Numeric value out of range (null)</font>



    <font face="Arial" size=2>/rating/rating.asp</font><font face="Arial" size=2>, line 60</font>
    </title>



    Linea 60 che corrisponde a:

    Codice PHP:
    <title>Vota per: <%=(rsLink.Fields.Item("titolo_libro").Value)%></title



    Tolta quella riga mi da invece il seguente errore:


    <title>Vota per: ...</title>
    <body background="../img/stripe_b.gif">

    </font>


    <table width="100%" border="0" cellspacing="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#111111" height="158">
    <tr>
    <td align="center" height="43">
    <script language="JavaScript">
    <!-- Hide from older browsers
    // Function to add the rating to the database
    function Rating(star) {

    if (star != "") self.location.href = "rating.asp?ID= <font face="Arial" size=2>


    Microsoft OLE DB Provider for ODBC Drivers</font> <font face="Arial" size=2>error '80004005'</font>



    <font face="Arial" size=2>[Microsoft][ODBC Microsoft Access Driver]Numeric value out of range (null)</font>



    <font face="Arial" size=2>/rating/rating.asp</font><font face="Arial" size=2>, line 74</font>



    Riga 74 che è:

    Codice PHP:
        if (star != ""self.location.href "rating.asp?ID=<%=(rsLink.Fields.Item("ID").Value)%>&Input=Vota&rate_value=" star

  4. #4
    basta leggere....

    il campo rsLink.Fields.Item("titolo_libro").Value è NULL.

    controlla che ci sia dentro qualcosa. intanto ti posto questo memorandum

    ----------------------------------------------------
    nel caso specifico, la ragione sta nel fatto che il campo memo
    (in ogni db, non solo access) non rientra nelle categorie standard:
    non è una stringa, non è un numero, non è una data.
    aggiungendo & "" si forza ASP a costringerlo dentro una stringa.
    probabilmente anche CStr(campo) sarebbe andato bene.
    a volte (mi sembra di ricordare lo faccia di più con mySQL)
    questi trucchi non funzionano se hai letto il campo con
    SELECT * FROM Tabella.
    Se usi
    SELECT elenco campi FROM tabella (cioè elenchi i campi uno per uno)
    funzia. Qui forse è un'esasperazione del concetto di cui sopra.
    In più, con sql2005/varchar(max) il campo 'memo' deve essere l'ultimo della select
    (non riesco qui a capire il perché...)
    ----------------------------------------------------


  5. #5
    Come gestisco "(LINK_RATE/NO_RATES) AS RATING" ?

    Ho provato così ma non va:

    Codice PHP:
    rsLink.Source "SELECT ID, titolo_libro, Autore, Data, (LINK_RATE/NO_RATES) AS RATING, descrizione_libro_big  FROM Libri  WHERE ID = " Replace(rsLink__ID"'""''") + "" 

  6. #6
    eh? è un campo o sono due?

  7. #7
    e poi (mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm) che cappero vuol dire NON VA?

  8. #8
    Nel senso che da lo stesso errore di prima.

    Comunque LINK_RATE/NO_RATES sono 2 campi diversi

  9. #9
    se tu esegui la query direttamente dentro sql ti dà errore?

  10. #10
    Grazie.

    Così sembra funzionare:

    Codice PHP:
    rsLink.Source "SELECT ID, titolo_libro, Autore, Data, email, url_sito, LINK_RATE, NO_RATES, descrizione_libro_big FROM Libri  WHERE ID = " Replace(rsLink__ID"'""''") + "" 
    Mi ostinavo a lasciare (LINK_RATE/NO_RATES) AS RATING

    Però sai dirmi il senso di (LINK_RATE/NO_RATES) AS RATING che c'era prima?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.