ciao

per evitare problemi di sql-injection ho fatto una funzione che converte le stringhe rendendole 'sicure' prima di metterle nel DB, ad esempio:

codice:
Function c_campo(stringa)
stringa = server.HTMLEncode(stringa)
stringa = Replace(stringa, "'", "''")
stringa = Replace(stringa, "%", "[%]")
stringa = Replace(stringa, "[", "[[]")
stringa = Replace(stringa, "]", "[]]")
stringa = Replace(stringa, "_", "[_]")
stringa = Replace(stringa, "#", "[#]")

c_campo = stringa
  
End Function
il problema che sorge è questo, quando faccio una query dove cerco un elemento che ho inserito utilizzando quella funzione lo script va in errore, ad esempio

se inserisco

casa_nome

nel db va casa[_]_nome

il prob è che quando faccio una query sul db io dico:

select * from tabella where campo='casa[_]nome'

e lo script mi da il seguente errore:

codice:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Driver ODBC Microsoft Access] Errore di sintassi (operatore mancante) nell'espressione della query 'nome = inserimento[_]contatti'.
evidentemente non considera le [ ] come parti del testo... cosa posso fare?