Note that there are some explanatory texts on larger screens.

plurals
  1. POI got a Cursor from database, then modify a row in the database , the data in the Cursor will change or not?
    text
    copied!<p>Assume that I get a <code>Cursor</code> by <code>db.query()</code>.<br> Then I modify a field in a row by <code>db.update()</code>,and this row is included by <code>Cursor</code> queried before. Data in this Cursor will change or not?</p> <p>like this: </p> <pre><code>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); </code></pre> <p>Is (a==b) true or false ? </p> <p>====== edited 2012.10.1 =========<br> I am not a pro-programmer,and too busy to code in these days.<br> If I make you unhappy ,I am very sorry.<br> Finally , I get a holiday of a week, haha . </p> <p>I do some coding like this:</p> <pre><code>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)); } </code></pre> <p>And logcat say that: </p> <p><code>10-01 03:11:28.356: D/(1514): s1 = name_wrong</code><br> <code>10-01 03:11:28.356: D/(1514): s2 = name_wrong</code><br> <code>10-01 03:11:28.356: D/(1514): s1 == s2 is true</code><br> <code>10-01 03:11:28.356: D/(1514): requery...</code><br> <code>10-01 03:11:28.356: D/(1514): s1 = name_wrong</code><br> <code>10-01 03:11:28.356: D/(1514): s2 = name_right</code><br> <code>10-01 03:11:28.356: D/(1514): s1 == s2 is false</code> </p> <p>So I think I get the answer Thank you all guys.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload