Android SQLite SELECT syntax error apex -


i created parametric query works perfectly. when string passed apex, error

sqliteexception: near "'%'": 

thi query

string sql = "select titolo, icona, colore, tipo, identificativo, dato_campo table " +             "where titolo '%" + parametro + "%' " +             "or dato_campo '%" + parametro + "%' group identificativo"; 

if parametro string of type stringa', error.

how can fix?

problem string has single quote characters breaks sql query string.

simulating parametro == test01 - ok

"select titolo, icona, colore, tipo, identificativo, dato_campo table titolo '%test01%' or dato_campo '%test01%' group identificativo"; 

simulating parametro == stringa' nok

"select titolo, icona, colore, tipo, identificativo, dato_campo table titolo '%stringa'%' or dato_campo '%stringa'%' group identificativo"; 

as can see, string producing '%stringa'%' invalid sql query.

you should escape character ' during query like: %stringa''%'.

so, can add follows before creating query string:

parametro = parametro.replaceall("\'","''"); string sql = "select titolo, icona, colore, tipo, identificativo, dato_campo table " +         "where titolo '%" + parametro + "%' " +         "or dato_campo '%" + parametro + "%' group identificativo"; 

this support issue facing now... gabe sechan mentioned on other answer, raw queries should discouraged.

update

safe way run query is:

string paramentro = "stringa'"; cursor cursor = db.query("tablename", new string [] {"titolo", "icona", "colore", "tipo", "identificativo", "dato_campo"}, "titolo ? or dato_campo ?", new string[]{"%"+paramentro+"%", "%"+paramentro+"%"}, "identificativo", null, null, null); 

Comments

Popular posts from this blog

jOOQ update returning clause with Oracle -

java - Warning equals/hashCode on @Data annotation lombok with inheritance -

java - BasicPathUsageException: Cannot join to attribute of basic type -