Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    problema con apostrofi in campi di un modulo da utilizzare in stringa SQL

    Allora, vediamo di farci capire...

    Ho un bel form con due campi, NOME e COGNOME che mi manda i due valori ad una pagina ASP che in base a questi due campi mi forma una stringa SQL e cerca dati in un database e visualizza i risultati.

    La riga che specifica la stringa SQL è di questo tipo:

    codice:
    strRubricaSQL = "SELECT COGNOME, NOME, SIGLA, Phone, Palazzina, Piano, ROOM, Sede, ImpID FROM tbOrganicoNew WHERE COGNOME LIKE '" & Cognome & "%' AND NOME LIKE '" & Nome & "%' ORDER BY COGNOME, NOME"
    Il problema (per me grosso) è che nel database ci sono cognomi del tipo "D'amico" e quando appunto si inserisce "D'amico" nella form e si da INVIO, accade che la pagina ASP mi da errore perchè quell'apostrofo va ad inquinare la stringa SQL...mi dite come risolvere affinchè quell'apostrofo non crei problemi????

    Grazie
    Roberto Pazzini

  2. #2
    codice:
    AND NOME LIKE '" & replace(Nome, "'", "''") & "%'
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  3. #3
    Roberto Pazzini

  4. #4
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  5. #5
    Scusami ancora...e se dovessi fare due sostituzioni?

    Mi spiego...oltre al problema degli apostrofo, ho anche il problema delle lettere accentate, cioè nel database i cognomi che presentano lettere accentate sono stati inseriti diversamente e quindi al posto di "à" è stato inserito "a'" e via dicendo per le altre vocali accentate.
    Quindi oltre a replace(Nome,"'","''") avrei anche i vari replace(Nome,"à","a''") da infilare nel codice...come si fa?
    Roberto Pazzini

  6. #6
    Se devi fare una serie di REPLACE sulla stinga da inserire, ti conviene fare una funzione.

    ES:

    codice:
    <%
    
    function sostituisciCaratteri (str)
    
       Dim stringa as string
       
       stringa = replace(stringa, "'","''")
       stringa = replace(stringa, "à","a'")
       stringa = replace(stringa, "è","e'")
       stringa = replace(stringa, "ì","i'")
       stringa = replace(stringa, "ò","o'")
       stringa = replace(stringa, "ù","ù'")
    
       sostituisciCaratteri = stringa
    
    end function
    
    .....AND NOME LIKE '" & sostituisciCaratteri(Nome) & "%'.....
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  7. #7
    Grazie...
    domanda...ma nella funzione, all'interno del replace non andrebbe "str" invece che "stringa" ?

    E poi...invece di replace(str,"à","a'") non dovrebbe essere replace(str,"à","a''")?

    Altrimenti ricado nel problema iniziale.

    Giusto?
    Roberto Pazzini

  8. #8
    Mi correggo:

    codice:
    <%
    
    function sostituisciCaratteri (str)
    
       Dim stringa as string
       
       stringa = str 
       stringa = replace(stringa, "'","''")
       stringa = replace(stringa, "à","a''")
       stringa = replace(stringa, "è","e''")
       stringa = replace(stringa, "ì","i''")
       stringa = replace(stringa, "ò","o''")
       stringa = replace(stringa, "ù","ù''")
    
       sostituisciCaratteri = stringa
    
    end function
    
    .....AND NOME LIKE '" & sostituisciCaratteri(Nome) & "%'.....
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

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.