sqlite: looks like moveToNext works without moveToFirst needed
After creating a standard SQLite cursor, I'm iterating thru the entries using:
while (cursor.moveToNext()) {
}
All the rows are being processed correctly.
All the documentation I've read states you need to issue a moveToFi开发者_如何学Gorst()
to ensure
that you're pointing to the first entry of the cursor set.
Is this working even though it shouldn't, and another release may not have the same processing?
No, this is working correctly. Cursor
s begin at row index -1 (before the first row). If the Cursor
references multiple rows, looping through them with the while
loop as you have suggested is the preferred method. It will call moveToNext()
, which moves you to index 0 (the first row), and go from there.
If your Cursor
only references one row, you may call moveToFirst()
on it before reading data to ensure that you are on a valid index. Both moveToFirst()
and moveToNext()
have the same effect when the Cursor
is first created and is at index -1.
精彩评论