25 messaggi dal 06 settembre 2002
Ciao

sono di nuovo a chiedervi un aiuto su una cosa che mi sta facendo impazzire.

Vorrei inserire in una query un semplice confronto di stringhe testuali per fare una select. Ad esempio:

SELECT * FROM prodotti WHERE categoria = '"& categoria &"'"

Semplice, no? Tutt'altro! La cosa funziona per la maggior parte delle categorie ma quando ci sono dei caratteri "non canonici" il confronto fallisce, nonostante le stringhe siano uguali!

Ad esempio non funziona con "Cibi & Bevande" oppure "specialità". Immagino che dipenda dai caratteri "&" e "à" (ma lo fa anche col pipe "|" e altri). Ma come si fa allora? Io vorrei che ogni carattere fosse preso in considerazione.

Ho provato anche con la funzione di confronto:

SELECT * FROM prodotti WHERE StrComp(categoria, '"&categoria&"', 0) = 0)

La query non mi da errore ma semplicemente non riconosce l'uguaglianza delle due stringhe. Sono entrambe di tipo chr!!

Qualche suggerimento?? Magari ho sbagliato qualche parametro nel db o devo convertire le due stringe in qualcosa??


grazie mille!!
Modificato da indiana il 01 gennaio 2006 18.27 -
118 messaggi dal 13 gennaio 2004
che database usi???

mandami lo script con cui valorizzi categoria

Punto Interrogativo
25 messaggi dal 06 settembre 2002
Ciao

uso Access e asp. La query esatta è la seguente:

SELECT * FROM corrispondenze_cat WHERE (StrComp(lcase([testo]), '" & trim(lcase(prod(campo_standard(a)))) & "', 0) = 0)

[testo] è la categoria nel db e campo_standard(a) è un vettore che quando la query si attiva contntiene la categoria. Con lcase rendo entrambi minuscoli.

la query funziona come dicevo per la maggior parte delle categorie, ma non quelle con le lettere accentate e simboli strani tipo &,|, e simili...

ciao e grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.