Bonjour Bruno
Ceci fonctionne très bien mais le fichier odb créer étant toujours
utilisé par OOo il m'est impossible de le supprimer et/ou de recréer la
source, ce qui m'oblige à fermer OOo pour effectuer un nouveau traitement.
Existe-t-il une technique permettant de remplacer un fichier source de
données sans être obligé d'arrêter OOo?
je ne comprends pas pas ta remarque sur "le fichier odb créer étant
toujours utilisé par OOo"
En faisant un revoke, changeant l'urlm de l'instance et recreant, mon
fichier odb pointe bien sur la nouvelle base
ci joint un exemple issu du livre ed2 cp17 page 569
- CreerSourceV2()
verifie en ouvrant ton document
- SupprimerSource()
change la variable chemin pointant sur le nouveau fichier
(meme si le meme d'ailleurs, en tout cas un dbf est mis à jour)
- CreerSourceV2()
N'oublie pas le .store
verifie en ouvrant ton document
Normallement, le fichier base qui sert de lien est mis à jour
Laurent
'---------------------------------
Option Explicit
Sub CreerSourceV2()
dim monDBContext As Object, uneInstance As Object
Dim Nomsource As String, Chemin As String
Dim monDocBase As Object
NomSource="BaseExempleV2_1"
monDBContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
if not monDBContext.hasByName(NomSource) then
Chemin =convertToURL("/home/lgodard/sdd")
uneInstance = monDBContext.createInstance()
monDocBase = uneInstance.DatabaseDocument
monDocBase.storeAsURL(convertToURL("/home/lgodard/maPetiteBase.odb"),
Array())
monDBContext.registerObject(NomSource, uneInstance)
uneInstance.URL = "sdbc:dbase:" & chemin
' remplir éventuellement autre propriétés : IsPasswordRequired, User, etc
monDocBase.store ' mémoriser les caractéristiques
else
MsgBox("Ce nom de source existe déjà." & chr(13) & _
"Impossible de créer la nouvelle source.", 16)
endif
End Sub
Sub SupprimerSource()
dim monDBContext As Object, Nomsource As String
NomSource = "BaseExempleV2_1"
monDBContext = CreateUnoService( _
"com.sun.star.sdb.DatabaseContext")
if monDBContext.hasByName(NomSource) then
monDBContext.revokeObject(NomSource)
else
MsgBox("Cette source de données n'existe pas", 16)
endif
End Sub
--
Laurent Godard <[EMAIL PROTECTED]> - Ingénierie OpenOffice.org
Indesko >> http://www.indesko.com
Nuxeo CPS >> http://www.nuxeo.com - http://www.cps-project.org
Livre "Programmation OpenOffice.org", Eyrolles 2004
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]