PostgreSQL und Schemata

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: PostgreSQL und Schemata

Re: PostgreSQL und Schemata

von Christiana » Mo, 01.10.2007 09:12

Vielen Dank euch beiden!
Auf die richtige Quotierung bei den Schemata wär ich alleine nicht gekommen.
Prima ist natürlich, dass es auch ohne Quotierung funktioniert. :lol:

Falls du, Basisproblem, es doch einmal mit der JDBC-Anbindung versuchen möchtest,
hier findest du eine gute Anleitung.

Christiana

Re: PostgreSQL und Schemata

von komma4 » Fr, 28.09.2007 16:33

right, wie geschrieben:

Basic braucht die Quotierung der Feldnamen nicht.
SQL (in der SQL-Entwurfsansicht) schon.

Mit "Datenpilot" meinst Du F4, den Datenbankbrowser?
Auch ich sehe dort views: sind die Objekte über Extras>Tabellenfilter... der Base-Datei freigegeben?


SDBC oder JDBC: meine Argumente/Erfahrungen, siehe:
viewtopic.php?f=8&t=14112

Ist das ein Problem (für Dich) einen JDBC-Treiber einzusetzen? Welche Vorzüge siehst Du bei der Verwendung von SDBC?

Re: PostgreSQL und Schemata

von komma4 » Fr, 28.09.2007 15:14

Das zweite Beispiel klappt, weil Basic den string intern korrekt auflöst.

Für SQL musst Du Schema und Feld einzeln 'quoten' (den Punkt nicht!):

Code: Alles auswählen

...FROM ""test"".""tbl_test"" "
letztes, das SQL-abschliessende, Anführungszeichen zur Verdeutlichung abgesetzt.

Klappt's?

PostgreSQL und Schemata

von Christiana » Fr, 28.09.2007 14:18

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
Fehlermeldung
image1.jpg (17.14 KiB) 654 mal betrachtet

Nach oben