Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    107

    AIUTO!!! maleficio o ignoranza?

    Credevo di conoscere ASP... almeno le cose più elementari ma quello che mi capita non riesco proprio a spiegarlo... eppure mi pare una sciocchezza!!!!

    vado subito al sodo:
    devo stampare dati prelevati da un DB.. tutto bene... ma se stampo 2 volte lo stesso campo di uno stesso record.... la seconda volta non funziona: Spiego con un esempio;

    Codice PHP:
    se stampo:
        
    response.write(prodotto("DESC_LONG"))

    ho l'uscita corretta
            "socio onorario" 
    se di seguito o in qualunque altra parte dellapagina ASP provo a stampare nuovamente il campo il risultato è drammaticamente il nulla!!!! E' NORMALE???

    Codice PHP:
    se stampo:
        
    response.write(prodotto("DESC_LONG"))
        
    response.write("pluto")
        
    response.write(prodotto("DESC_LONG"))
        
    response.write("paperino")
        
    response.write(prodotto("DESC_LONG"))
        
    response.write(prodotto("DESC_LONG"))

    il risultato è:
            
    "socio onorario"
            
    pluto
            paperino 
    Se poi mi viene voglia di fare un ciclo (ad esempio for) per stampare x volte lo stesso campo... ancora misteriosamente lo stmpa solo la prima:

    Codice PHP:
    se stampo
        
    FOR XX 0 TO 10
        response
    .write(XX&" - ")
        
    response.write(prodotto("DESC_LONG"))
        
    response.write("
    "
    )
        
    NEXT

    il risultato è
    :
    socio onorario
    -
    -
    -
    -
    -
    -
    -
    -
    10 

    STO IMPAZZENDO....................... VVoVe: VVoVe: VVoVe: VVoVe: VVoVe:

  2. #2
    dovresti fare il requery ogni volta no?

  3. #3
    posta il codice reale, vediamo di annullare il malocchio

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    107
    Codice PHP:
    <%
    Dim MM_connBart_STRING
    MM_connBart_STRING 
    "Driver={Microsoft Access Driver (*.mdb)}; DBQ=dbBart-e.mdb"

    Dim prodotto__MMColParam
    prodotto__MMColParam 
    "1"
    If (Request.QueryString("p") <> ""Then 
      prodotto__MMColParam 
    Request.QueryString("p")
    End If


    Dim prodotto
    Dim prodotto_cmd
    Dim prodotto_numRows

    Set prodotto_cmd 
    Server.CreateObject ("ADODB.Command")
    prodotto_cmd.ActiveConnection MM_connBart_STRING
    prodotto_cmd
    .CommandText "SELECT * FROM QuerySito_PerCategoria WHERE ID_PRODOTTO = ?" 
    prodotto_cmd.Prepared true
    prodotto_cmd
    .Parameters.Append prodotto_cmd.CreateParameter("param1"51, -1prodotto__MMColParam' adDouble

    Set prodotto = prodotto_cmd.Execute
    prodotto_numRows = 0


    ....
    ....

     <% If NOT isnull(prodotto.Fields.Item("DESC_LONG").Value) AND  prodotto.Fields.Item("DESC_LONG").Value<>"" Then %>
        <tr>
              <td align="left" valign="top" class="colTitDescrizione">descrizione</td>
              <td align="left" valign="top" class="spazioDettaglio"><%=(prodotto.Fields.Item("DESC_LONG").Value)%></td>
            </tr>
     <% End If %>

            <% If NOT isnull(prodotto.Fields.Item("DIMENSIONE").Value) AND  prodotto.Fields.Item("DIMENSIONE").Value<>"" Then %>
            <tr>
              <td align="left" valign="top" class="colTitDescrizione">impiego / dimensione </td>
              <td align="left" valign="top" class="spazioDettaglio"><%=(prodotto.Fields.Item("DIMENSIONE").Value)%></td>
            </tr>
            <% End If %>
            <% If NOT isnull(prodotto.Fields.Item("ESERCIZIO").Value) AND  prodotto.Fields.Item("ESERCIZIO").Value<>"" Then %>
            <tr>
              <td align="left" valign="top" class="colTitDescrizione">esercizio</td>
              <td align="left" valign="top" class="spazioDettaglio"><%=(prodotto.Fields.Item("ESERCIZIO").Value)%></td>
            </tr>
            <% End If %>
            <% If NOT isnull(prodotto.Fields.Item("VARIANTI").Value) AND  prodotto.Fields.Item("VARIANTI").Value<>"" Then %>        
            <tr>
              <td align="left" valign="top" class="colTitDescrizione">varianti</td>
              <td align="left" valign="top" class="spazioDettaglio"><%=(prodotto.Fields.Item("VARIANTI").Value)%></td>
            </tr>
            <% End If %>
            <% If NOT isnull(prodotto.Fields.Item("OPZIONI").Value) AND  prodotto.Fields.Item("OPZIONI").Value<>"" Then %>        
            <tr>
              <td align="left" valign="top" class="colTitDescrizione">opzioni  prodotto </td>
              <td align="left" valign="top" class="spazioDettaglio"><%=(prodotto.Fields.Item("OPZIONI").Value)%></td>
            </tr>
             <% End If %>
      ...
    ...
    </body>
    </html>
    <%
    prodotto.Close()
    Set prodotto = Nothing
    %> 

    Il problema è nato quando ho aggiunto le condizioni "if" che servono a visualizzare la riga solo se ci sono dati da mostrare. Mi spiego: senza la condizione i dati vengono mostrati perfettamente, dopo che l'ho aggiunta non vengono mostrati mai anche quando sono presenti. Aggiungendo degli "echo" di controllo si vede che inspiegabilmente, almeno per me, a causa della doppia lettura il campo del record si cancella!!!! Se ASP funziona così... mi pare una bella cavolata... ma mi pare più semplice pensare che sia io a sbagliare qualcosa... ma non so cosa!!!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    107
    CAVOLO!!!!!!!!!!
    Veramente ASP pretende che faccia il requery ogni volta?!?!? mi pare assurdo... e poi in questo modo il puntatore si riposiziona sempre sul primo record... se devo fare un ciclo su tutti come faccio?!?!?!

    ...
    ...
    quanto mi manca php.....

  6. #6
    no beh...evitiamo di prendere sempre troppo sul serio le mie risposte....comunque proprio per questa ragione da un po di tempo, dopo essermelo fatto spiegare per benino, ho preso l'abitudine di usare il getrows e di usare così gli array....mooolto più comodi e leggeri.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    107
    mhmhm.... ho dato un'occhiata a getrows... mi pare un'ottima soluzione... grazie della dritta....
    resta però il fatto che non mi spiego il funzionamento, o meglio MALFUNZIONAMENTO, del codice così come lo avevo scritto io, e questo mi scoccia un po'!!!!!....
    :master:

    di nuovo grazie e ciao

  8. #8
    ma scusa...leggo solo ora veramente il tuo codice...
    non ti basta mettere solamente if not isnull?
    L'opzione dopo non è necessaria....penso

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    107
    Diciamo che è uno scrupolo in più... nel senso che se un campo è stringa vuota non è detto che venga letto come "null" e quindi potrebbe essere bypassato il controllo... ma il punto non è questo:
    se anche lascio solamente il controllo sul null comunque non risolvo il problema del fatto che leggendo 2 volte il campo.... la seconda leggo sempre e comunque valore nullo.... e il mistero continua.....

  10. #10
    ma scusa...leggo solo ora veramente il tuo codice...
    non ti basta mettere solamente if not isnull?
    L'opzione dopo non è necessaria....penso

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 © 2025 vBulletin Solutions, Inc. All rights reserved.