sql >> Databáze >  >> RDS >> PostgreSQL

LibreOffice Calc spustí funkci PostgreSQL

Něco podobného je možné udělat v LibreOffice Calc, ale místo nastavování databázového propojení s různými nabídkami se vše provádí pomocí kódu makra.

Následující fungovalo pro mě pomocí toto Uložená procedura 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

Kód je převzat z https://forum.openoffice. org/en/forum/viewtopic.php?f=21&t=41149 .

Chcete-li kód dokončit, upravte jej tak, aby se výsledky nezobrazovaly v okně se zprávou, ale do tabulky. Také čtěte vybranou hodnotu z rozevíracího pole namísto pevného kódování hodnoty sFormat .

Poznámka:Některé informace online doporučují použití přechodného souboru .odb. To by znamenalo více nabídek, než dělat vše v makru. Toto funguje pro tabulky a dotazy, ale zjevně ne pro uložené procedury, pokud možná s HSQLDB, jak je zmíněno zde .




  1. Spusťte více MySQL dotazů z PHP | Proč to nefunguje?

  2. PDO::bindParam ve smyčce foreach, všechny hodnoty jsou nastaveny jako stejné?

  3. Jak povolit XA Oracle 11g

  4. Počítání souvisejících položek s Sequelize