Ähnliches ist in LibreOffice Calc möglich, aber anstatt die Datenbankverbindung mit diversen Menüs einzurichten, wird alles mit Makrocode erledigt.
Folgendes hat bei mir mit dies funktioniert Gespeicherte MySQL-Prozedur :
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
Der Code ist angepasst von https://forum.openoffice. org/en/forum/viewtopic.php?f=21&t=41149 .
Um den Code fertigzustellen, ändern Sie ihn so, dass die Ergebnisse in die Tabelle eingefügt werden, anstatt sie in einem Meldungsfeld anzuzeigen. Lesen Sie auch den ausgewählten Wert aus dem Dropdown-Feld, anstatt den Wert von sFormat
fest zu codieren .
Hinweis:Einige Online-Informationen schlagen vor, eine zwischengeschaltete .odb-Datei zu verwenden. Das würde mehr Menüs beinhalten, anstatt alles im Makro zu tun. Dies funktioniert für Tabellen und Abfragen, aber anscheinend nicht für gespeicherte Prozeduren, außer vielleicht mit HSQLDB, wie hier