Hello,
Unfortunately this answer is not much better than the last.
Records for a form are retrieved based upon a default internal setting called FetchSize
. This default is set to 40.
The good news it that it can be changed. The bad news (only because of your comment in another question) is that it needs to be changed via a macro. For the sake of completion, here is the macro:
Sub RecordsRetrieved
Dim oForm As Object
oForm = ThisComponent.Drawpage.Forms.getByName("Your_Internal_Form_Name") REM usually MainForm
oForm.FetchSize = 1
oForm.reload()
End Sub
You would need to use your internal form name as noted in the code. This macro is then run by attaching it to the Open Document
event of the form.
It should also be noted, while this may speed up initial loading, each record will be slower because it needs loading.
Additionally, linked images instead of Blob would also be better for loading.
Edit 2018-08-26:
Have done some further testing with LO v 6.1.0.3, MySQL v5.7, JDBC 8.0.12 connector on Mint 18.3, 4 gb memory, quad CPU @ 3.2
Have found no way to limit the problem when using embedded images. The problem is that records are loading into memory and if memory is limited disk swap is used which slows things down even further. Initially when I ran on my system it showed only a couple second delay with 40+ 10-20 mb images in the table. By not closing the .odb & re-running it becomes much slower. So less memory, a slower CPU and other programs running can have an adverse effect on this loading. The problem does not go away when loading only a single record via a table filter. Initially it loads almost immediately. However, each subsequent get of another record only adds to memory being used. This memory remains occupied until the .odb is closed. Have not found a method to free this memory between records retrieved.
Performed the same testing using linked images. There was no delay using any of the forms and memory was never an issue.