Hallo,
ich arbeite mich neu in Base ein. Habe SQL-Kenntnisse und ein bisschen Erfahrung mit OOo-Makros (lerning by doing).
In meiner PostgreSql-DB, die über JDBC mit OOo verbunden ist, sind meine Tabellen und Views zur besseren Strukturierung in Schemata abgelegt. Das Standard-Schema heißt „public“.
Innerhalb von Base kann ich die einzelnen Schemata auch sehen und auch die betreffende Tabelle „tbl_test“, aber wenn ich mit folgenden Code auf ein selbst erstelltes Schema „test“ zugreifen möchte, erhalte ich eine Fehlermeldung in der mit *** gekennzeichneten Zeile:
Code: Alles auswählen
sub test
Dim oDatenquelle as Object, oHandler as Object, oDatVerb as Object
Dim oStatement as Object, oErgSet as Object
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
oDatenquelle = DatabaseContext.getByName("tagebuch")
oDatVerb = oDatenquelle.getConnection("","")
oStatement = oDatVerb.createStatement()
oErgSet = oStatement.executeQuery("SELECT ""vorname"" FROM ""test.tbl_test""" ) ***
Dim s as string
if not isNull(oErgSet) then
Do while oErgSet.next
s = s & oErgSet.getString(1) & CHR(13)
loop
end if
MsgBox "Vornamen: " & chr(13) & s
end sub
Fehlermeldung siehe Dateianhang!
Merkwürdigerweise funktioniert folgender Code in einem außerhalb von Base gespeicherten Formular:
Code: Alles auswählen
sub test1
sFile = "H:\Tagebuch\frm_test.odt"
sURL = ConvertToURL(sFile)
Dim myProps(0) as New com.sun.star.beans.PropertyValue
myProps(0).Name="ReadOnly"
myProps(0).Value = true
oDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, myProps())
oForm = oDoc.DrawPage.Forms(0)
oForm.DataSourceName = "tagebuch"
oForm.CommandType = 0 'Tabelle
oForm.Command = "test.tbl_test"
oForm.reload
end sub
Habe ich bei dem ersten Codebeispiel etwas falsch gemacht? Wenn ich mit diesem Code auf eine Tabelle von „public“ zugreife, funktioniert er. Kann ich generell nicht mit Schemata arbeiten?
Viele Grüße und vielen Dank für eure Hilfe im Voraus!
Christiana

- Fehlermeldung
- image1.jpg (17.14 KiB) 654 mal betrachtet