View unanswered posts | View active topics It is currently 27 Apr 2024, 08:44



Reply to topic  [ 1 post ] 
 SQLite LIKE Statement 
Author Message

Joined: 21 Jun 2011, 02:57
Posts: 1
Post SQLite LIKE Statement
Γεια και χαρά σε όλους!

Ασχολούμαι εδώ και λίγο καιρό με το development σε android (γράφω σε .net). Αποφάσισα να γράψω μια εφαρμογή η οποία διαχειρίζεται κάποια δεδομένα SQLite. Βασικά θέλω να φτιάξω ένα listactivity παρόμοιο με αυτό των contacts. Έχω ήδη φτιάξει το layout με ένα EditText στην κορυφή για να μπορώ να κάνω αναζήτηση (filter) στην λίστα. Όλα δουλεύουν κανονικά και με το νόμο ΕΚΤΟΣ από την άτιμη LIKE statement της SQLite η οποία, παρόλες τις φιλότιμες προσπάθειες μου, επιμένει να είναι case sensitive.
Σας παραθέτω μερικά code blocks:

========== OPENHELPER ===========
public class appdatabase extends SQLiteOpenHelper {

public static final String CATEGORIESCS_TABLENAME = "categoriescs";
public static final String CATEGORIESCS_KEYNAME = "_id";
public static final String PROFESSIONS_TABLENAME = "professions";
public static final String PROFESSIONS_KEYNAME = "_id";
public static final String POSITIONS_TABLENAME = "positions";
public static final String POSITIONS_KEYNAME = "_id";

private static final String DATABASE_NAME = "mubilling";
private static final int DATABASE_VERSION = 1;

private static final String CREATE_categoriescs_SCRIPT = "CREATE TABLE " + CATEGORIESCS_TABLENAME + " (" + CATEGORIESCS_KEYNAME + " INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, catdesc TEXT);";
private static final String CREATE_professions_SCRIPT = "CREATE TABLE " + PROFESSIONS_TABLENAME +" (" + PROFESSIONS_KEYNAME + " INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, prodesc TEXT);";
private static final String CREATE_positions_SCRIPT = "CREATE TABLE " + POSITIONS_TABLENAME + " (" + POSITIONS_KEYNAME + " INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, posdesc TEXT);";

//** Constructor */
public appdatabase(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_categoriescs_SCRIPT);
db.execSQL(CREATE_professions_SCRIPT);
db.execSQL(CREATE_positions_SCRIPT);
}


============ ΦΙΛΤΡΑΡΙΣΜΑ ΛΙΣΤΑΣ ============
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.recordsbrowser);

ImageButton cmdAddRecord = (ImageButton)findViewById(R.id.cmdAddRecord);
cmdAddRecord.setOnClickListener(cmdAddRecord_Click);

txtSearch = (EditText) findViewById(R.id.txtSearchList);
txtSearch.setHint(apputils.getResourceString(getBaseContext(), R.string.hint_categoriescssearch));
txtSearch.addTextChangedListener(filterTextWatcher);

appdbhelper = new appdatabase(this);
SQLiteDatabase db = appdbhelper.getReadableDatabase();

categoriescs = db.query(appdatabase.CATEGORIESCS_TABLENAME, null, null, null, null, null, "catdesc COLLATE UNICODE");
startManagingCursor(categoriescs);

categoriescslist = new SimpleCursorAdapter(this, R.layout.simplebrowseritem_layout, categoriescs, new String[] {"catdesc"}, new int[] {R.id.txtField1});
categoriescslist.setFilterQueryProvider(new FilterQueryProvider() {
@Override
public Cursor runQuery(CharSequence constraint) {
String partialValue = constraint.toString();
return appdbhelper.getReadableDatabase().query(appdatabase.CATEGORIESCS_TABLENAME, null, "catdesc LIKE ? ", new String[]{partialValue + "%"}, null, null, "catdesc COLLATE UNICODE");
}
});

setListAdapter(categoriescslist);

registerForContextMenu(getListView());
}

Αν μπορεί να με βοηθήσει κάποιος θα του ήμουν υπόχρεος!

Ευχαριστώ πολύ

Υ.Γ. Μία διόρθωση
Η Like statement στην SQLite είναι case-insesitive μόνο στους Αγγλικούς χαρακτήρες ενώ στα Ελληνικά είναι case-sensitive...


21 Jun 2011, 03:07
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 1 post ] 

Who is online

Users browsing this forum: No registered users and 97 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware.