Date: prev next · Thread: first prev next last
2020 Archives by date, by thread · List index


Vielen Dank Robert und Thomas,

ich hab jetzt mal mehrere Varianten getestet.

Die hier unten funktioniert und löst beide beschriebene Probleme.

Wenn sich nach eurer Meinung da aber noch etwas vereinfachen lässt, bin
ich für jeden Rat dankbar.

Das "IF...THEN..NULL" wird wohl von der HSQLDB benötigt....

Jetzt werde ich bei Gelegenheit noch die anderen vom gleichen Problem
betroffenen Importbefehle anpassen.

Dann sollte der Veröffentlichung des Updates eigentlich nichts mehr im
Wege stehen.

Gruß L-H


SUB Datenkopie


dim dbname as string
dbname = InputBox("Datenbankname der Quelldatenbank eingeben")
if dbname = "" then
exit sub
end if

DIM oDatabaseContext AS OBJECT
DIM oDatenquelle AS OBJECT
DIM oDatenquelleQuell AS OBJECT
DIM oVerbindung AS OBJECT
DIM oVerbindungQuell AS OBJECT
DIM oDB AS OBJECT
DIM oSQL_Anweisung AS OBJECT
DIM oSQL_AnweisungQuell AS OBJECT
DIM oAbfrageergebnis AS OBJECT
DIM oAbfrageergebnisQuell AS OBJECT
DIM stSql AS String
DIM stSqlZiel AS STRING
DIM inID AS INTEGER
DIM inIDZiel AS INTEGER

oDB = thisDatabaseDocument
oDatenquelle = thisDatabaseDocument.CurrentController
If NOT (oDatenquelle.isConnected()) THEN
oDatenquelle.connect()
END IF
oVerbindung = oDatenquelle.ActiveConnection()
oDatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")

stDir = Left(oDB.Location,Len(oDB.Location)-Len(oDB.Title))
stDir = ConvertToUrl(stDir & ""+dbname+"")                   
'Quell-Datenbankpfad erstellen
oDatenquelleQuell = oDatabaseContext.getByName(stDir)       
'Quell-Datenbankpfad einlesen
oVerbindungQuell = oDatenquelleQuell.GetConnection("","")   
'Quell-Datenbankverbindung einlesen
oSQL_AnweisungQuell = oVerbindungQuell.createStatement()   
'SQL-Statement für Quelldatenbank erstellen

REM Hier stehen noch mehrere andere Tabellen zum Import

stSql = "SELECT * FROM ""tbl_Auswinterung"""
oAbfrageergebnisQuell = oSQL_AnweisungQuell.executeQuery(stSql)
WHILE oAbfrageergebnisQuell.next
inID = oAbfrageergebnisQuell.getint(1)     'ID (Integer)
sp2 = oAbfrageergebnisQuell.getLong(2)     'Integer
sp3 = oAbfrageergebnisQuell.getString(3)     'Zahl'
IF sp3="" THEN
    sp3="NULL"
END IF
sp4 = oAbfrageergebnisQuell.getString(4)     'Text
sp5 = oAbfrageergebnisQuell.getString(5)    'Dezimalzahl
IF sp5="" THEN
    sp5="NULL"
END IF
sp6 = oAbfrageergebnisQuell.getString(6)    'Dezimalzahl
IF sp6="" THEN
    sp6="NULL"
END IF
sp7 = oAbfrageergebnisQuell.getString(7)    'Datum
sp8 = oAbfrageergebnisQuell.getLong(8)    'Zahl
sp9 = oAbfrageergebnisQuell.getString(9)    'Zahl
IF sp9="" THEN
    sp9="NULL"
END IF

oSQL_AnweisungZiel = oVerbindung.createStatement()
stSql = "SELECT ""ID"" FROM ""tbl_Auswinterung"" WHERE ""ID"" = '"+inID+"'"
oAbfrageergebnis = oSQL_AnweisungZiel.executeQuery(stSql)
inIDZiel = - 1
WHILE oAbfrageergebnis.next
inIDZiel = oAbfrageergebnis.getInt(1)
WEND
IF inIDZiel = - 1 THEN
stSqlZiel = "INSERT INTO ""tbl_Auswinterung""
(""ID"",""StockNr"",""Brutwaben"",""Bemerkung"",""Futterwaben"",""Totenfall"",""Datum"",""Jahr_ID"",""Stärke_ID"")
VALUES ('"+inID+"','"+sp2+"'," & sp3 & ",'"+sp4+"'," & sp5 &"," & sp6 &
",'"+sp7+"','"+sp8+"'," & sp9 & ")"
oSQL_Anweisung.executeUpdate(stSqlZiel)
END IF
WEND

REM Hier stehen noch mehrere andere Tabellen zum Import

MsgBox("Daten wurden übernommen")
end sub


-- 
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.