簡體   English   中英

如何修復:嘗試使用OfficeDatabaseDocument UNO服務進行load()時的“堆棧內存不足”

[英]How to fix :“Not Enough Stack Memory” when trying to load() with OfficeDatabaseDocument UNO service

我試圖使自己熟悉LibreOffice Base上的Macro和UNO API,我嘗試使用UNO OfficeDatabaseDocument(DOC here: https ://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1star_1_1sdb_1_1OfficeDatabaseDocument打開我的.odb文件.html#a3d0b1f053d53f5b196e4c19e55a519ae )與UNO一起玩並學習使用它們。

Function MyClubOfficeDatabaseDocument()
    Dim MyClubURL(0) As New com.sun.star.beans.PropertyValue
    MyClubURL(0).Name = "Chemin d'accès vers la base de donnée MyClub"
    MyClubURL(0).Value = "/Users/faisalsalhi/Desktop/MyClub/MyClub.odb"

    MyClubOfficeDatabaseDocument = CreateUnoService("com.sun.star.sdb.OfficeDatabaseDocument")
    MyClubOfficeDatabaseDocument.load(MyClubURL)
End Function

我收到一個運行時錯誤消息,說我沒有足夠的堆棧內存來執行此操作。

您已經耗盡了堆棧內存,因為您已經設置了無限遞歸。 也就是說,您的函數MyClubOfficeDatabaseDocument在其內部被調用,然后又一次又一次地無限制地調用自身

解決此問題的唯一方法是消除無限遞歸。

您只需更改函數名或變量名就可以修復它。 例如,您可以將函數名稱更改為LoadMyClubOfficeDatabaseDocument

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM