Bonjour,
François Breizh a écrit :
Bonjour à tous.
J'ai un problème avec l'accès à la liste des tables d'une base de
données : je souhaite pouvoir supprimer et recréer des tables par macro.
A un moment je veux balayer les tables existantes par quelque chose
comme ça :
/BaseComptes = DatabaseContext.getByName("Paiements")
....
oLstTables = BaseComptes.Tables
If oLstTables.Count > 0 Then
For I = 0 To oLstTables.Count - 1
....
SString = oLstTables.ElementNames(I)
Next I
End If
/Le problème est que la liste obtenue est toujours la même : avec une
base importée d'une autre machine, je retrouve toujours la liste des
tables existantes au début, même lorsque je les ai supprimées ; avec une
base initialisée par macro (qui n'avait aucune table lorsque je l'ai
enregistrée), la liste est toujours vide, même après avoir ajouté des
tables.
Ai-je mal compris l'usage d'une variable de type
com.sun.star.sdb.ODefinitionContainer ?
1] Liste de tables
Je pense qu'il te manque simplement une instruction de rafraichissement
des tables après suppression/creation des tables.
Tu devrais avoir en amont de ta procédure de listage des tables quelque
chose comme :
oLstTables.Refresh()
avec oLstTables = oConnexion.getTables()
2] Sauvegarde de tables/bases
> avec une base importée d'une autre machine,
> je retrouve toujours la liste des tables existantes au début
Là je crois que tu oublies de sauvegarder les modifications de ta Base.
Aussi il est nécessaire d'enregistrer ta base mise à jour, par exemple
avec ce genre d'instructions :
'enregistrement
oDataSource.DataBaseDocument.Store()
'libération de la connexion si fin de traitement
oConnexion.dispose()
Francois Gatto
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]