Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    53

    [SQL] Problemi con l'apice

    Ciao a tutti.
    Ho notato che molto spesso compaiono delle richieste su consigli riguardo a stringhe SQL e ho visto che spesso si tralascia un problema da non sottovalutare per nulla: il maledetto apice.

    es:

    str_SQL = "SELECT Campo1, Campo2 FROM Tabella1 WHERE Campo1 ='" & txt_campo1 & "'"

    mettiamo il caso che il programma lo si è fatto per un pinco pallino qualsiasi.

    pinco deve cercare nel Campo1 la parola "lunedì", inserendola nel controllo txt_campo1, siete proprio sicuri che pinco non scriva "lunedi'"?????

    E' stato il mio primo problema in SQL..... tempo fa...
    credo sia giusto avvertire della possibilità di generare errori banali...

    o no?

  2. #2
    hai ragione, il rischio c'è e capita spessissimo che tal pinco pallino sbagli a digitare e le select vanno in errore o non trovano record pur essendo presenti. e l'esempio che hai fatto è significativo.
    basta niente x generare questo tipo di errori.
    quindi facciamo tutti molta attenzione.

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  3. #3
    Utente di HTML.it L'avatar di JamesD
    Registrato dal
    Oct 2001
    Messaggi
    415
    Per ovviare questo errore si può fare una replace sui dati inseriti dall'utente rimpiazzando l'apice con un carattere molto simile chr(96)(`)! in questo modo il programma non si impalla e l'utente non si accorge nemmeno dell'errore!

    Ciaoz

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    53
    sicurooooooo?

  5. #5
    Utente di HTML.it L'avatar di JamesD
    Registrato dal
    Oct 2001
    Messaggi
    415
    Originariamente inviato da janx
    sicurooooooo?


    Ma che stai a dì?

    Quello che ho detto io non è una regola fissa (quindi non ne posso essere sicuro), è solo un metodo (per di più molto funzionale) per ovviare al problema che come dici te è molto comune!!

    Certo che se poi uno è pignolo e non gli va di ritrovarsi ` al posto di ' non si può certo mettere in pratica!!

    Ciaoz

  6. #6
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    il metodo sicuro è fare una replace dell'apice singolo con un doppio apice (cioè due apici singoli).

    Il problema nasce perchè SQL interpreta l'apice inserito dall'utente come terminatore di campo.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    53
    hei calma...... calma....

    Certo che se poi uno è pignolo e non gli va di ritrovarsi ` al posto di ' non si può certo mettere in pratica!!
    ...appunto!

    ti assicuro che li trovi quelli che ti fanno un cazzettone se scrivi perchè anzi che perché.

    Non metto in dubbio che il metodo che tu hai proposto sia ingegnoso e faccia risparmiare fatica (io non lo userei comunque....)

    però prevenire è meglio che curare....

    quindi il problema o lo si risolve dalla radice o altrimenti rischiamo di dover mettere mano al codice troppo spesso.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    53
    faccia risparmiare fatica
    inteso per chi usa VB5....

    in VB6 fai:

    sCommand=Replace(sCommand,"'","''")

    quindi visto che rimpiazziamo.....




    hei guarda che io so leggere nel pensiero.....
    tu ora stai pensando ma guarda te sto rompi c#@#$%#i ma che c#@&&o ........
    giusto?

  9. #9
    Utente di HTML.it L'avatar di JamesD
    Registrato dal
    Oct 2001
    Messaggi
    415
    Non in realtà stavo pensando : Ma guarda che spacca mar@#i b@#t@r##!!

    :gren: Scherzo! Sono convinto che la mia idea non sia ottimale sopprattutto come ho già detto quando si ha a che fare con clienti pignoli!!

    Penso appunto che l'idea di dark che poi hai suggerito anche tu sia ehm come dire (brucia un po ammetterlo ) migliore della mia!!

    Vabbè se tutti fossimo perfetti non esisterebbe neanche il forum!
    Giusto no:sexpulp:

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    53
    ..... gia:gren:

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.