sqlite - How to write IN type query in android(pre-populated database) -


i have query in have multiple in statements.

query


select tcf.car_make,tcf.car_model,tcf.car_ver,prices,rear_parking_sensors,airbags,engine_immobilizer,power_windows,integrated_in_dash_music_system,steering_adjustment car_feature tcf join car_spec tcs tcf._id=tcs._id , tcs.prices between '0' , '80,00,00,000' , tcs.fuel_type in("petrol","diesel","null","null") , tcf.car_make in("null","null","null","null","null","null","null","force motors","ford","hindustan motors","honda","null","null","lamborghini","land rover","null","null","null","null","null","null","null","null","null","null","null","null","null","null","null")


my query works fine when execute in sqlite browser.

but when try execute same query in helper class using db.execsql() statement doesn't work.

my logcat shows error

07-31 05:06:03.085: e/androidruntime(334): caused by: android.database.sqlite.sqliteexception: unknown error: queries cannot performed using execsql(), use query() instead. 

it says use db.query() statement.

the confusion how use in statement in db.query()

can please me.

the documentation states cannot use sqlitedatabase.execsql() perform select or other sql statement returns data. sqlitedatabase.execsql() doc:

execute single sql statement not select or other sql statement returns data. has no means return data (such number of affected rows). instead, you're encouraged use insert(string, string, contentvalues), update(string, contentvalues, string, string[]), et al, when possible.

edit: can use rawquery() form parameterized query in:

string query = "select * table" + " name in ("+ createplaceholders(names.length) +")"; cursor c = db.rawquery(query, names); 

in case let's assume createplaceholders() returns string containing names.length comma separated '?'.


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

c++ - End of file on pipe magic during open -