मैं ORMLite उपयोग कर रहा हूँ, टेबल RecentSearch साथ:ORMLite क्वेरी, एंड्रॉयड
@DatabaseTable(tableName = LocalStorageConfig.SQL_RECENTS_TABLE_NAME)
public class RecentSearch {
@DatabaseField
public String search_text;
public static String SQL_SEARCH_FIELD = "search_text";
@DatabaseField
public String location_text;
public static String SQL_LOCATION_FIELD = "location_text";
@DatabaseField
public Date creation_date = new Date();
public static String SQL_CREATION_DATE_FIELD = "creation_date";
यह लगभग हर समय काम कर रहा है, लेकिन जब मैं युक्त एक स्ट्रिंग के साथ मामला की खोज एक 'है, तो ऐसा लगता है एक समस्या होने के लिए। क्या आप जानते हैं कि इसे कैसे हल करें? मैं जो खोज रहा था उसे नहीं मिला।
यहाँ से हटाने के लिए मेरी समारोह है हाल ही में एक
public boolean deleteRecent(RecentSearch search) {
try {
Dao<RecentSearch, Integer> recentsDao = recentsSqlManager.getRecentsDao();
DeleteBuilder<RecentSearch, Integer> deleteBuilder = recentsDao.deleteBuilder();
deleteBuilder.where().eq(RecentSearch.SQL_SEARCH_FIELD, search.getSearch_text()).and().eq(RecentSearch.SQL_LOCATION_FIELD, search.location_text);
recentsDao.delete(deleteBuilder.prepare());
return true;
} catch (Exception e) {
Log.e(TAG, "Database exception", e);
return false;
}
}
यहाँ है अपवाद मैं मिलता है:
java.sql.SQLException: Problems executing Android statement: DELETE FROM `recent_searches` WHERE (`search_text` = '' AND `location_text` = 'Villefranche-d'Allier, Allier')
at com.j256.ormlite.misc.SqlExceptionUtil.create(SqlExceptionUtil.java:22)
at com.j256.ormlite.android.AndroidCompiledStatement.runUpdate(AndroidCompiledStatement.java:66)
at com.j256.ormlite.stmt.StatementExecutor.delete(StatementExecutor.java:425)
at com.j256.ormlite.dao.BaseDaoImpl.delete(BaseDaoImpl.java:347)
...
Caused by: android.database.sqlite.SQLiteException: near "Allier": syntax error: , while compiling: DELETE FROM `recent_searches` WHERE (`search_text` = '' AND `location_text` = 'Villefranche-d'Allier, Allier')
at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:92)
at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:65)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:83)
at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:41)
at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1149)
http://stackoverflow.com/questions/5280227/sql-exception-preparing-query-with-ormlite और http://stackoverflow.com/questions/6400782/ormlite-escape-string-method – Gray