मैं जो निम्नलिखित कोड द्वारा बनाई गई है एक एसक्यूएल तालिका है में रिक्त हो, तो:कैसे टेस्ट कर्सर एक SQLiteDatabase क्वेरी
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + _ID
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + SUBJECT
+ " TEXT NOT NULL," + TOPIC + " TEXT NOT NULL, "
+ LECTURENUMBER + " TEXT NOT NULL, " + PAGENUMBER
+ " TEXT NOT NULL, " + DATE + " TEXT NOT NULL, " + _DATA
+ " TEXT NOT NULL);");
}
इस प्रकार मैं तालिका क्वेरी:
String sql = "SELECT " + _ID + "," + SUBJECT + " FROM " + TABLE_NAME
+ " GROUP BY " + SUBJECT + ";";
Cursor cursor = subjects.getReadableDatabase().rawQuery(sql, null);
समस्या क्या कर्सर खाली है (यानी तालिका कोई मूल्य नहीं रख रही है) और गतिविधि बी अगर कर्सर खाली नहीं है (यानी तालिका भर जाती है) तो मुझे ए गतिविधि ए शुरू करना होगा।
मैं ऐसी विधि नहीं ढूंढ पा रहा हूं जो मुझे बता सकता है कि तालिका खाली है या नहीं। मैं इस्तेमाल किया लॉग करने की कोशिश की इस प्रकार है:
private void showSubjectsOnList() {
String sql = "SELECT " + _ID + "," + SUBJECT + " FROM " + TABLE_NAME
+ " GROUP BY " + SUBJECT + ";";
Cursor cursor = subjects.getReadableDatabase().rawQuery(sql, null);
Log.d("Events",Integer.toString(cursor.getCount()));
if(cursor.isNull(0)!=false){
cursor.close();
subjects.close();
startActivity(new Intent(this,OpenScreen.class));
}
}
लेकिन LOG 1 से पता चलता है, अगर तालिका खाली है ... और फिर 1, अगर तालिका 1 प्रविष्टि है .... यह, 2 से पता चलता है, तो तालिका दो प्रविष्टियां हैं और इसी तरह।
क्या आप कर्सर खाली है या नहीं, इस पर आधारित विभिन्न गतिविधियों को शुरू करने की मेरी समस्या को हल करने की कुछ विधि सुझा सकते हैं।
मैंने आपके द्वारा वर्णित तरीके से बिल्कुल प्रयास नहीं किया है। लेकिन मैं रूप में अच्छी तरह के रूप में इस का उपयोग कर कर्सर की कोशिश की = अशक्त,: Log.d (! "घटनाक्रम", Boolean.toString (कर्सर = नल)); दिलचस्प बात यह है कि तालिका में कुछ मूल्य हैं, तो लॉग दिखाता है, लेकिन आश्चर्य की बात है कि तालिका खाली होने पर लॉग बिल्कुल दिखाई नहीं दे रही है। मैं उलझन में हूं इसका मतलब क्या है। –
'कर्सर.मोव टॉफ़र्स्ट()' के साथ कर्सर के पॉइंटर को पहले रिकॉर्ड में ले जाना न भूलें –
का परीक्षण करने से पहले इसका मतलब है कि आपकी क्वेरी शून्य-पंक्तियां लौटाती है। जिसका अर्थ है कि कर्सर शून्य नहीं है लेकिन शून्य पंक्तियां हैं: डी –