Възможно е да се направи нещо подобно в LibreOffice Calc, но вместо да се настройва връзката с базата данни с различни менюта, всичко се прави с макро код.
Следното работи за мен, използвайки това MySQL съхранена процедура :
Sub RunStoredProc
Dim oParms(1) as new com.sun.star.beans.PropertyValue
oParms(0).Name = "user"
oParms(0).Value = "root"
oParms(1).Name = "password"
oParms(1).Value = "password"
oManager = CreateUnoService("com.sun.star.sdbc.DriverManager")
sURL = "sdbc:mysql:jdbc:localhost:3306/world"
oConnection = oManager.getConnectionWithInfo(sURL, oParms())
sFormat = "Europe"
oStmt = oConnection.prepareCall("CALL country_hos(?)")
oStmt.setString(1, sFormat)
oResult = oStmt.executeQuery()
sResult = ""
If Not IsNull(oResult) Then
While oResult.Next()
sResult = sResult & oResult.getString(1) & CHR(10)
Wend
End If
MsgBox "Result: " & sFormat & " = " & CHR(10) & sResult
oStmt.close()
End Sub
Кодът е адаптиран от https://forum.openoffice. org/en/forum/viewtopic.php?f=21&t=41149 .
За да завършите кода, променете го, за да поставите резултатите в електронната таблица, вместо да ги показвате в поле за съобщения. Също така прочетете избраната стойност от падащото поле, вместо да кодирате твърдо стойността на sFormat
.
Забележка:Част от онлайн информацията предлага използването на междинен .odb файл. Това би включвало повече менюта, вместо да прави всичко в макроса. Това работи за таблици и заявки, но очевидно не и за съхранени процедури, освен ако може би с HSQLDB, както е споменато тук .