Karteileichen in Tables.ElementNames
Verfasst: Di, 02.04.2013 21:37
Hallo zusammen!
Hab für meine Datenbank eine reset Funktion geschrieben, um jeweils nach wildem Testen und Daten schreiben, ändern und löschen, einamal alles zu löschen und die IDs auf null zu setzen.
Klappt auch soweit, nur sind in ThisComponent.DataSource.Tables.ElementNames noch Tabellennamen vorhanden, die längst gelöscht und/oder umbenannt wurden.
Kommt man irgendwie an die Refeferenzierung dran und kann die entfernen?
Fast vergessen, wird ja Wert drauf gelegt
Windows 7 64-bit - LibreOffice 3.5.6.2
Hab für meine Datenbank eine reset Funktion geschrieben, um jeweils nach wildem Testen und Daten schreiben, ändern und löschen, einamal alles zu löschen und die IDs auf null zu setzen.
Klappt auch soweit, nur sind in ThisComponent.DataSource.Tables.ElementNames noch Tabellennamen vorhanden, die längst gelöscht und/oder umbenannt wurden.
Kommt man irgendwie an die Refeferenzierung dran und kann die entfernen?
Code: Alles auswählen
sub resetAll()
dim Tables as Object
dim sSQL as String
dim oConnection as Object
dim oSQLQuery as Object
Tables = ThisComponent.DataSource.Tables.ElementNames
oConnection = ThisDatabaseDocument.DataSource.GetConnection("","")
dim i as Integer
for i = 0 to uBound( Tables)
Print(Tables(i))
sSQL = "DELETE FROM ?"
sSQL = replace( sSQL, "?", """" & Tables(i) & """")
oSQLQuery = oConnection.createStatement()
oSQLQuery.executeUpdate( sSQL)
sSQL = "ALTER TABLE ? ALTER COLUMN ""ID"" RESTART WITH 0"
sSQL = replace( sSQL, "?", """" & Tables(i) & """")
oSQLQuery = oConnection.createStatement()
oSQLQuery.executeUpdate( sSQL)
next
end sub
