Seite 1 von 1

[gelöst] Kopieren von Tabellen von DB zu DB per Makro

Verfasst: Do 1. Mai 2014, 00:42
von Acco
Liebe Helfer,

2 Datenbanken (DB) bestehen in LO Base 4.1.5, beide eingebettet. Betriebssystem ist openSUSE 13.1.

Nun sollen in DB „Kurse“ Export-Tabellen mit aufbereiteten Adressdaten erstellt werden. Aus einer Tabelle müssen 3 erstellt werden, wegen unterschiedlicher Datenstrukturen in der Ziel-DB. Das funktioniert bereits. Diese Tabellen sollen in die Ziel-DB „Adressen“ kopiert werden, das klappt nicht. Dort sollen dann die Daten dieser exportierten Tabellen automatisch in die entsprechenden Tabellen eingefügt werden, das funktioniert auch.

Es klappt also alles, bis auf das kopieren der Tabelle von DB zu Ziel-DB. Per Hand, also mit „ziehen und einfügen“ ist das kein Problem, so machen wir es derzeit. Das soll jedoch per Makro automatisiert werden, um Bedienfehler weitgehend auszuschließen. Das kriege ich nicht hin.

Entweder habe ich die Verbindung in der ersten DB mit

Code: Alles auswählen

	oDatenquelle = ThisComponent.Parent.DataSource
	oVerbindung = oDatenquelle.GetConnection("","")
	oStatement = oVerbindung.createStatement
oder die Verbindung zur zweiten, entfernten DB mit

Code: Alles auswählen

	oDatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
	oDatasource = oDatabaseContext.getByName("Adressen_1_2")
	oConnection = oDatasource.GetConnection("","")
	oSQL_Statement = oConnection.createStatement()
Die Verbindung zur zweiten DB funktioniert, ich kann mir Daten daraus anzeigen lassen, aber eben keine Daten (Tabellen) dahin übertragen. Ich stehe auf dem Schlauch.

Kann mir jemand auf die Sprünge helfen?

Herzlichst
acco

Re: Kopieren von Tabellen von DB zu DB per Makro

Verfasst: Do 1. Mai 2014, 09:48
von RobertG
Hallo Acco,

ist natürlich so schlecht zu sagen, wo bei Dir genau der Fehler liegt. Ich habe das einfach einmal zusammengebaut: Quelldatenbank, Zieldatenbank und ein Formular in der Quelldatenbank mit einem Button. Drückst Du den Button, so wird die Tabelle aus der Quelldatenbank in die Tabelle der Zieldatenbank kopiert.

Gruß

Robert

Re: Kopieren von Tabellen von DB zu DB per Makro

Verfasst: Do 1. Mai 2014, 10:42
von Acco
Hallo Robert,

vielen Dank für die schnelle und problemlösende Antwort.

Dein Beispiel funktioniert so, wie ich es mir erwünscht habe. Meine Schwierigkeiten waren an 2 Stellen:

Code: Alles auswählen

	oDatenquelle = ThisComponent.Parent.CurrentController
Da hatte ich den Bezug auf CurrentController nicht,
sowie

Code: Alles auswählen

	oVerbindung = oDatenquelle.ActiveConnection()
da war mir ActiveConnection nicht klar.

Meine Probleme waren genau an den Stellen, die Du in Deinem Makrocode auskommentiert hast.

Nochmal herzlichen Dank für die Lösung und einen schönen 1.Mai.

Gruß

acco