Assume that I get a Cursor by db.query().
Then I modify a field in a row by db.update(),and this row is included by Cursor queried before.
Data in this Cursor will change or not?
like this:
Cursor cur = db.query("[some parameter can get row 0]");
cur.moveToFirst;
int a = cur.getInt(0);
db.update("[some parameter can modify row 0 col 0]");
int b = cur.getInt(0);
Is (a==b) true or false ?
====== edited 2012.10.1 =========
I am not a pro-programmer,and too busy to code in these days.
If I make you unhappy ,I am very sorry.
Finally , I get a holiday of a week, haha .
I do some coding like this:
SQLiteOpenHelper h = null;
SQLiteDatabase db = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
h=new SQLiteOpenHelper(this, "test.db", null,1){
@Override
public void onCreate(SQLiteDatabase arg0) {
// TODO Auto-generated method stub
arg0.execSQL("CREATE TABLE t1 (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT )");
arg0.execSQL("INSERT INTO t1 (name) VALUES ('name_wrong')");
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}};
db=h.getWritableDatabase();
Cursor cur = db.query("t1", null, null, null, null, null, null);
cur.moveToFirst();
String s1=cur.getString(1);
db.execSQL("UPDATE t1 SET name = 'name_right'");
String s2=cur.getString(1);
Log.d("","s1 = "+s1);
Log.d("","s2 = "+s2);
Log.d("","s1 == s2 is "+s1.equals(s2));
Log.d("","requery...");
cur = db.query("t1", null, null, null, null, null, null);
cur.moveToFirst();
s2=cur.getString(1);
Log.d("","s1 = "+s1);
Log.d("","s2 = "+s2);
Log.d("","s1 == s2 is "+s1.equals(s2));
}
And logcat say that:
10-01 03:11:28.356: D/(1514): s1 = name_wrong
10-01 03:11:28.356: D/(1514): s2 = name_wrong
10-01 03:11:28.356: D/(1514): s1 == s2 is true
10-01 03:11:28.356: D/(1514): requery...
10-01 03:11:28.356: D/(1514): s1 = name_wrong
10-01 03:11:28.356: D/(1514): s2 = name_right
10-01 03:11:28.356: D/(1514): s1 == s2 is false
So I think I get the answer
Thank you all guys.
Basically
false