Android Question Example for LazyLoading from jRDC2

AymanA

Active Member
Licensed User
Hi All,

I can load/SELECT ALL data in a table from jRDC2 (mysql DB) with no problem, but I think this is not perfect in case of thousands of rows to return/SELECT from App performance standpoint, also I am aware that I can use LIMIT to limit the number of rows; however I am not sure how to return/Load the next number of rows when the user scroll to the next view/number of rows, I understand the concept by following:

But do we have a full example from App side how to implement this, or get the next number of visible rows from jRDC2?

Note: I have searched the forum but can not find a clear way to do this.

Thanks for your help with this!

Kind regards,
Ayman
 
Download 100 items.
But it depends on how the content is displayed, if only 5 rows fit on the screen, then to preload 100 items from the DB is quite a lot. The loading time is also longer with 100 records than with 30.

Here is an example:
[CODE lang="b4x" title="SQL"]SELECT * FROM mytable LIMIT ?,30;[/CODE]
This returns 30 rows at the given offset.
if you load the page for the first time, then the questionmark value is a 0, but if you have already items in the list then put this to the questionmark:
B4X:
xclv.size -1
Or from your local SQLite-DB count all your rows and put this as parameter.

B4X:
Sub xclv_page2_VisibleRangeChanged (FirstIndex As Int, LastIndex As Int)

If LastIndex > = xclv_page2.Size -1 Then 'if lazy loading reach the end of the list, then load more from the DB
      
        Dim DR As ResultSet = Main.content_sql.ExecQuery("SELECT MAX(rowid) AS rowid FROM mytable")
        Do While DR.NextRow
            GetContent(DR.GetInt("rowid"))'rowid is the offset for your LIMIT offset
        Loop
        DR.close

    End If

End Sub

I'm not good at explaining. ?
but I just put that in my app yesterday.
 
Upvote 0
Thank you so much Erel and Alexander, both your comments made it clear on how I will do this, CLV_ReachEnd and the offset for the limit!! This is great, thank you!

One more question if you do not mind what if i will have search, so does this mean that everytime the user will search for keyword for example: ABC, it will SELECT when the user hit A then another call/select when the user hit B, and then third when hit C?

I believe this can be achieved by clear the first visible 30/100 and use LIKE syntax in jRDC2 side , but what do you think is the best practice for search in jRDC2/CLV to show the output?
 
Upvote 0
Back
Top