Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    57

    motori ricerca case sensitive

    Salve a tutti.
    Ho un motore di ricerca che punta su access. Lo interrogo per trovare una parola ma

    voglio che mi prenda maiuscole e minuscole, quindi sia case sensitive. Poiché per

    default è insensitive, come posso fare?
    nel seguente esempio mi trova parole senza badare al maiuscolo/minuscolo

    strSQL = "SELECT * FROM notizie WHERE testo LIKE '%" & strRicerca & "%' "

    Ho provato con strComp() ma lui mi dà i risultati solo se strRicerca è uguale

    perfettamente a tutta la notizia, il che non va.

    Qualcuno sa come fare?

    Grazie.
    Giorgio

  2. #2
    strSQL = "SELECT * FROM notizie WHERE LCASE(testo) LIKE '%" & LCASE(strRicerca) & "%' "

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    57
    Originariamente inviato da optime
    strSQL = "SELECT * FROM notizie WHERE LCASE(testo) LIKE '%" & LCASE(strRicerca) & "%' "

    Grazie per la risposta "fulminea".
    ho provato ma praticamente mi trova sempre le parole senza badare alle maiuscole. Per esempio se scrivo italia mi dà la notizia dove è scritto Italia. E non vorrei. Questo il mio scopo.

  4. #4
    capperozzo, avevo capito il contrario. quindi risposta 'fulminata'! altro che 'fulminea'

    prova con

    strSQL = "SELECT * FROM notizie WHERE INSTR(testo, '" & strRicerca & "')>0 "

    mi sembra che la INSTR sia case-sensitive

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    57
    E' vero, instr è case sensitive. Ma purtroppo continua a darmi i risultati con italia anche se Italia è scritto la "I" maiuscola.
    Credo sia più difficile di quanto sembri a prima vista!!!
    Ma confido...

  6. #6
    Instr accetta parametri che alterano la case sensitivity (fatemelo passare dai).
    codice:
    InStr(1, testo, '" & strRicerca & "', 0) > 0
    Questo (con lo zero da ultimo parametro) fa un confronto binario, che è quello che ti serve.

    xxx

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    57
    Originariamente inviato da Alethesnake
    Instr accetta parametri che alterano la case sensitivity (fatemelo passare dai).
    codice:
    InStr(1, testo, '" & strRicerca & "', 0) > 0
    Questo (con lo zero da ultimo parametro) fa un confronto binario, che è quello che ti serve.

    Corpo di mille balene!
    Funziona!!!

    Grazie.

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    57
    Spinto dal grande successo ottenuto (grazie al forum) mi sono spinto oltre cercando di ottenere la situazione definitiva. Credo che questo potrà essere utile anche ad altri.
    Data una lista di parole chiave fisse (che no messo in un unico campo separate da una virgola, tipo "Italia,Francia,Spagna...") vorrei ottenere i risultati attraverso la soluzione che mi avete dato. Ho pensato ad un vettore che legge tutte le parole chiave e va ad inserire in mezzo alla stringa sql.
    Mi viene fuori questo, ma non funziona. Credo di aver messo in mezzo qualcosa di demenziale.

    keyword_splittata = split(key, ",")
    strSQL = "SELECT * FROM notizie WHERE INSTR(1,testo,"
    strSQL = strSQL +
    for i = 0 to ubound(keyword_splittata)
    "keyword_splittata(i)"
    next
    strSQL = strSQL + ",0)>0 ORDER BY id desc"

  9. #9
    se ti fai stampare la stringa che costruisci e la analizzi, capisci dove hai sbagliato

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    57
    l'errore l'avevo visto è dopo il + prima di for.
    Credo che un for next in mezzo a quella stringa non abbia senso. Boh

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.