[gelöst] autoregistrierung von base Datenbank

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

juergen_w1987
**
Beiträge: 48
Registriert: Fr, 04.02.2011 09:31

[gelöst] autoregistrierung von base Datenbank

Beitrag von juergen_w1987 »

hallo,

habe gerade openoffice auf 3.3.0 upgedatet.
Neues problem ich habe ein skript dass die Datenbank beim starten automatisch registriert. jetzt ist das aber seit 3.3.0 anders wollte schnell mal fragen wie man das skript anpassen muss??
http://www.openoffice.org/dev_docs/feat ... istrations

Code: Alles auswählen

Sub selfRegister (dbName as String)
   
   Dim dbContext As Object 
   Dim regDb As Object 
   Dim url As String
   dbContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
   	url = thisComponent.getUrl
	regDb = dbContext.getByName (url)
	dbContext.registerObject (dbName, regDb)
Die Fehlermeldung ist dass es schon den "dbName" gibt. wäre schon zufrieden wenn mir jemand den befehl zum löschen der registrierten Datenbank sagt. Damit ich die registrierung lösche und im anschluss gleich wieder die Datenbank neu registriere.

Ps: Das ganze brauche ich da die Datenbank des öfteren hin und her geschoben wird.

danke mfg

jürgen
Zuletzt geändert von juergen_w1987 am Mi, 24.08.2011 11:31, insgesamt 1-mal geändert.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: auto registrierung von base Datenbank

Beitrag von komma4 »

juergen_w1987 hat geschrieben:Damit ich die registrierung lösche und im anschluss gleich wieder die Datenbank neu registriere.
Das ist unnötig.

Siehst Du Dir das Objekt dbContext mit einem Objekt-Inspektor, wie XRAY
an, dann siehst Du:

a) eine Methode .hasByName, um zunächst das Vorhandensein zu prüfen, damit Du in dem Fall
b) die Eigenschaft .Name mit .setPropertyValue auf einen neuen (verschobenen) Pfad ändern kannst.


Das hilft Dir weiter?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
juergen_w1987
**
Beiträge: 48
Registriert: Fr, 04.02.2011 09:31

Re: auto registrierung von base Datenbank

Beitrag von juergen_w1987 »

lösugng:

Code: Alles auswählen

Sub selfRegister (dbName as String)
   Dim dbContext As Object 
   Dim regDb As Object 
   Dim isRegegistered As boolean 
   Dim url As String
   dbContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
   	url = thisComponent.getUrl
	regDb = dbContext.getByName (url)
 	isRegistered = dbContext.hasRegisteredDatabase(dbName)
 		if(isRegistered) Then 
    		dbContext.revokeObject(dbName)
			dbContext.registerObject (dbName, regDb)
		else 
			dbContext.registerObject (dbName, regDb)
		End if
		
End Sub
Antworten