Base-Tabelle per OOo Basic in andere Base-DB kopieren

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: Base-Tabelle per OOo Basic in andere Base-DB kopieren

Re: Base-Tabelle per OOo Basic in andere Base-DB kopieren

von fu-sin » Di, 08.02.2011 15:38

Danke für's Info!
Ja, ist auch eine Lösung, wobei man in deinem Beispiel davon ausgeht, dass die Ziel-Tabelle bereits existiert. In meinem Fall ist es nicht so, d.h. sie muss erst angelegt werden... usw.

Re: Base-Tabelle per OOo Basic in andere Base-DB kopieren

von DPunch » Mo, 07.02.2011 18:11

Aloha

Eine "direkte" Lösung gibt es dafür nicht.
Du wirst das in zwei Schritten erledigen müssen
a) Daten aus Quelle auslesen
b) ausgelesene Daten in Ziel schreiben

Das würde dann im Prinzip so aussehen:

Code: Alles auswählen

ConnectionQ = DataSourceQ.GetConnection("","")
StatementQ = ConnectionQ.createStatement()

ConnectionZ = DataSourceZ.GetConnection("","")
StatementZ = ConnectionZ.createStatement()

sQuery = "SELECT * FROM ""tMitglieder"""
oResult = StatementQ.executeQuery(sQuery)

nCounter = 0
Do While oResult.Next
	sUpdate = "INSERT INTO ""tMitgliederNeu"" VALUES('" & oResult.getString(1) & "'"
	For i = 2 To oResult.Columns.Count
		sUpdate = sUpdate & ",'" & oResult.getString(i) & "'"
	Next i
	sUpdate = sUpdate & ")"
	nCounter = nCounter + StatementZ.executeUpdate(sUpdate)
Loop
MsgBox nCounter & " Zeilen eingefügt",64,"Abgeschlossen"

Re: Base-Tabelle per OOo Basic in andere Base-DB kopieren

von fu-sin » Mo, 07.02.2011 15:53

Vorübergehend habe ich einen Workaround mit dump realisiert. Suche aber weiter nach einer "direkten" Lösung.

Base-Tabelle per OOo Basic in andere Base-DB kopieren

von fu-sin » Fr, 04.02.2011 12:13

Im Anschluss an diesen Thread viewtopic.php?f=8&t=45843 habe ich noch weitere Fragen zu einer Lösung mit Basic.
Aufgabe: Eine Tabelle aus bestehender Base-DB in eine andere Base-DB mit allen Daten kopieren.
Mögliche Lösung: (wie ich es bisher versucht habe) zwei Datenbankverbindungen erstellen und dann mit "SELECT * INTO" - Anweisung eine bestehende Tabelle in andere Datenbank kopieren.

Innerhalb einer DB funktioniert es problemlos:

Code: Alles auswählen

myQuerry = "SELECT * INTO ""tMitgliederNeu"" FROM ""tMitglieder"""
Und mit 2 Datenbankverbindungen kriege ich es nicht zum Laufen...
Die Verbindungen sehen dann so aus:

Code: Alles auswählen

' Quelle
..
ConnectionQ = DataSourceQ.GetConnection("","")
StatementQ = ConnectionQ.createStatement()

' Ziel
..
ConnectionZ = DataSourceZ.GetConnection("","")
StatementZ = ConnectionZ.createStatement()
...
Nun, wie und wo kann ich die richtige Connection zuweisen?
Die Lösung für SQL Server lautet z.B.:

Code: Alles auswählen

SELECT * INTO ZielDB.dbo.CustomersTemp FROM QuelleDB.dbo.Customers
Und im Basic scheitere ich einfach bei der richtigen Syntax:

Code: Alles auswählen

sMyQuery="SELECT * INTO " & <ConnectionZ???> & ".""tMitgliederNeu"" FROM " & <ConnectionQ???> & ".""tMitglieder"""
Bei allen ausprobierten/geratenen Varianten bekomme ich eine Fehlermeldung zu dem SQL-String: "BASIC-Laufzeitfehler. Falscher Wert für Eigenschaft."

Vielen Dank im Voraus!

Nach oben