Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258

    Utilizzo non valido di Null: 'Replace'

    Ho una pagina che mi stampa i dati a video "paginati" ed ha sempre funzionato.

    Recentemente ho modificato questa riga:
    codice:
    javascript:if(confirm('Eliminare il seguente articolo <%=(rec("modello1"))%>
    Con questa:
    codice:
    javascript:if(confirm('Eliminare il seguente articolo <%=Replace(rec("modello1"),"'","\'")%>
    Ed ora mi stampa i dati a video come prima ma quando vado a clikkare sul link della pagina n.2 o 3 e così via mi da questo errore:
    codice:
    Errore di run-time di Microsoft VBScript (0x800A005E)
    Utilizzo non valido di Null: 'Replace'
    Il codice completo (semplificato per una più semplice analisi) è:
    codice:
    <% 
    'Numero di record visualizzati per pagina
    Record_Pagina = 20
    'Numero di Pagine visualizzate nei link
    Numerazione_Max = 6
    
    'Scrivo la mia query sql
    sql = "SELECT * FROM caricoart order by ID DESC"
    
    'E creo il recordset
    Set Rec = Server.CreateObject ("ADODB.Recordset")
    Rec.PageSize = Record_Pagina
    Rec.Open sql, Conn, 3, 3
    
    'Recupero il numero della pagina corrente
    Pag = CInt(Request.Querystring("pag"))
    
    'Controllo che il numero di pagina sia corretto
    If (Not Rec.Eof) Then
      If Pag>Rec.PageCount Then
        Pag = Rec.PageCount
      End If
      If Pag = 0 Then
        Pag = 1
      End If
    
      'Setto la pagina corrente
      Rec.AbsolutePage = Pag
    
      'Ora prepariamo i link alle pagine
      indice_inizio = pag-(Numerazione_Max/2)
      If (indice_inizio>(Rec.PageCount-Numerazione_Max)) Then
        indice_inizio = Rec.PageCount-Numerazione_Max+1
      End If
      If (indice_inizio<=0) Then
        indice_inizio = 1
      End if
      indice_fine=indice_inizio+Numerazione_Max-1
      If (indice_fine>Rec.PageCount) Then
        indice_fine = Rec.PageCount
      End If
      'Link alla prima pagina
      Link = "<|  "
    
      'Link alle pagine precedenti
      If (indice_inizio<>1) Then
        Link=Link&"<a href=""?pag="&(indice_inizio-1)&""">... "
      End If
      For i=indice_inizio to indice_fine
    
      'Pagina attuale
      If (i=pag) then
        Link = Link&"]"&i&"[ "
      'Link alle altre pagine
      Else
        Link = Link&"<a href=""?pag="&i&""">["&i&"] "
      End If
      Next
    
      'Link alle pagine successive
      If (indice_fine<Rec.PageCount-1) Then
        Link = Link&"<a href=""?pag="&(indice_fine+1)&""">... "
      End If
    
      'Link all'ultima pagina
      Link=Link&"<a href=""?pag="&Rec.PageCount&""">|>  "
    End If
    
    'I link sono pronti,ora stampiamo i record ..
    i=0
    While (NOT rec.EOF)and(i<Record_Pagina)
      i = i+1
    ' Response.Write( rec("marca1")&"
    " )
    %>
    
    
    
    
    
    
    
    
    
            <td width="27" height="20" nowrap> <div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> definitvamente?'))window.location='del.asp?cod=<%=rec("ID")%>'">[img]/images/cancella.gif[/img]"width="12" height="12" border="0""></font></div></td>
    <%
    
      Response.Write( rec("marca1")&"
    " )
     
        
        rec.MoveNext
     
    WEnd
    %>
      
     
      <%
    'e ora finalmente stampiamo i link alle altre pagine
    Response.Write(Link)
    %>

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ma quel replace a che servirebbe visto che sostituisci un carattere con se stesso?

    Roby

  3. #3
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    Ciao roby

    Allora...se non uso il replace, al momento di premere "cancella" (nel codice è la riga dov'è il replace) mi restituisce errore perchè un eventuale apice nel campo "modello1" interferisce con il comando javascript.

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Io raddoppierei gli apici, così:
    codice:
    <%=Replace(rec("modello1"),"'","''")%>
    In ogni caso l'errore deriva dal fatto che il campo preso dal db è NULL e la replace non funziona.

    Roby

  5. #5
    per evitare il problema del NULL, aggiungere sempre una stringa vuota, cosi'

    codice:
    <%=Replace((rec("modello1") & ""), "'", "''")%>

  6. #6
    A parte il discorso di evitare il NULL aggiungendo uno spazio (bel trucchetto ) l'errore Javascript ti permane lo stesso perchè non devi raddoppiare l'apice ma devi mettere l'escape dell'apice in questo modo :

    codice:
    <%=Replace((rec("modello1") & ""), "'", "\'")%>
    altrimenti l'errore Javascript permane

  7. #7
    Originariamente inviato da deivnet
    A parte il discorso di evitare il NULL aggiungendo uno spazio..
    non e' uno spazio, e' una stringa vuota

  8. #8
    E' vero scusa,
    stavo notando una bella cosa però ... nell'esempio di codice che ho messo mi ha tolto la "\" che bello!!!

    riproviamo

    <%=Replace((rec("modello1") & ""), "'", "\'")%>

  9. #9
    A parte il discorso di evitare il NULL aggiungendo uno spazio (bel trucchetto ) l'errore Javascript ti permane lo stesso perchè non devi raddoppiare l'apice ma devi mettere l'escape dell'apice in questo modo :

    codice:
    <%=Replace((rec("modello1") & ""), "'", "\'")%>
    altrimenti l'errore Javascript permane

  10. #10
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    Ti ringrazio, funziona perfettamente

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.