[Libreoffice-bugs] [Bug 121342] New: Access2Base Counter for OpenRecordset usage is too low

bugzilla-daemon at bugs.documentfoundation.org bugzilla-daemon at bugs.documentfoundation.org
Sun Nov 11 03:21:20 UTC 2018


https://bugs.documentfoundation.org/show_bug.cgi?id=121342

            Bug ID: 121342
           Summary: Access2Base Counter for OpenRecordset usage is too low
           Product: LibreOffice
           Version: 6.1.1.1 rc
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: medium
         Component: BASIC
          Assignee: libreoffice-bugs at lists.freedesktop.org
          Reporter: tony.sultana at pm.me

Description:
Each use of OpenRecordset increases the Integer counter RecordsetMax in
Access2Base.Database.  Once 32767 recordsets are open an error is reported with
the next OpenRecordset.  It does not matter that mClose() is used for each
OpenRecordset.

32767 may sound large but my use is a converted MS Access database used for
Monte Carlo simulations into the millions.  I am reworking the logic in many
places to use arrays or batch updates with difficulty.

The following code will error out very quickly.

Dim iRec as Object, x as Long
Set iRec = CurrentDb().OpenRecordset("table")
With iRec 
  Do While Not .EOF
    x = x + 1
    .MoveNext
  Loop
  .mClose
End With 



Steps to Reproduce:
1. Run the code above to get the attached error.
2.
3.

Actual Results:
Code runs until the RecordsetMax gets to 32767.  Then either 
1) run CurrentDb().CloseAllRecordsets() to reset but make sure you are not
using any open Recordsets or
2) Close all LO products and reopen Base

This problem is on Debian Linux LO 6.1.3 and Win10 LO 6.1.1

Expected Results:
Crashed of OpenRecordset with FATAL error


Reproducible: Always


User Profile Reset: No


OpenGL enabled: Yes

Additional Info:
Allow more Recordsets to be opened.  A counter that is Integer for RecordsetMax
is too low, perhaps changing to Long.  I do not know if the Integer limit is
carried into other tables or classes to make this practical.

The other option is to reuse OpenRecordset counters or at least provide a way
to view the RecordsetMax variable as a property call for error trapping.  As it
currently is the database cannot handle more complex uses without coding to its
deficiencies.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice-bugs/attachments/20181111/c7029582/attachment-0001.html>


More information about the Libreoffice-bugs mailing list