[Résolu][Base] Connexion à la base

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Shlo'k
NOOuvel adepte
NOOuvel adepte
Messages : 13
Inscription : 06 mai 2010 07:32

[Résolu][Base] Connexion à la base

Message par Shlo'k »

BOOonjour,

Dans mes macros je suis amené plusieurs fois à me connecter à la base...

Code : Tout sélectionner

'récuperation de la base de donnée

Fichier = ConvertToURL("C:\Users\Xavier\Desktop\Complete.odb")

Contexte = CreateUnoService("com.sun.star.sdb.DatabaseContext")
DataBase = Contexte.getByName(Fichier)

'paramètres de connexion (non définis)

maBase = DataBase.getconnection("","")

Statement = maBase.createStatement()
monDoc = thisComponent
Or ça marche très bien quand ma base est fixe, mais le problème c'est qu'elle risque de bouger avec ses utilisateurs finaux et qu'ils n'iront jamais changer la ligne de code ...

Ma question est donc la suivante, est ce que quelqu'un connait une macro permettant soit de récuperer automatiquement l'url sur l'ordi/reseau où se trouve la
base soit à l'aide d'un bouton parcourir d'aller chercher manuellement la position du fichier base de donnée ?

Merci d'avance !
Dernière modification par Shlo'k le 30 juin 2010 15:04, modifié 1 fois.
OOo 3.2.0 sous Windows Vista
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 11276
Inscription : 02 mai 2006 08:42

Re: [Base] Connexion à la base

Message par Pierre-Yves Samyn »

Bonjour
Shlo'k a écrit :Dans mes macros je suis amené plusieurs fois à me connecter à la base...
Or ça marche très bien quand ma base est fixe, mais le problème c'est qu'elle risque de bouger avec ses utilisateurs finaux et qu'ils n'iront jamais changer la ligne de code ...
Référencer une base ne sert en principe que pour pouvoir l'utiliser dans le traitement de texte (publipostage) ou dans le tableur (insertion des données, pilotes de données).

Dans les autres cas... cela ne sert à rien. Qui plus est si on indique "en dur" le chemin en effet... !

Voir par exemple ce fil http://user.services.openoffice.org/fr/ ... =15&t=6919 montrant comment "remonter" depuis un formulaire à la connexion
Shlo'k
NOOuvel adepte
NOOuvel adepte
Messages : 13
Inscription : 06 mai 2010 07:32

Re: [Base] Connexion à la base

Message par Shlo'k »

Je me posais la question, donc ça veut dire que je peux rayer toutes les lignes concernant la connexion à la base?
dans ce cas je fais comment pour les lignes suivantes :

Code : Tout sélectionner

Contexte = CreateUnoService("com.sun.star.sdb.DatabaseContext")

DataBase = Contexte.getByName(Fichier)

maBase = DataBase.getconnection("","")

Statement = maBase.createStatement()

maRequete = Statement.executeQuery( strSQL )

maRequete.Close
Statement.Close
maBase.Close
maBase.Dispose

je pensais que c'était nécessaire pour exécuter des requêtes sous base, donc toutes les lignes superflues je peux les virer mais que devient la dernière commande ? comment je faire pour exécuter ma requête ?
OOo 3.2.0 sous Windows Vista
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 11276
Inscription : 02 mai 2006 08:42

Re: [Base] Connexion à la base

Message par Pierre-Yves Samyn »

Shlo'k a écrit :je pensais que c'était nécessaire pour exécuter des requêtes sous base, donc toutes les lignes superflues je peux les virer mais que devient la commande soulignée? comment je fais pour ma requête pour le coup ?
Euh... as-tu pris le temps de lire le lien qui commence par :
Capture-1.png
J'extrait du code figurant dans cette page :

Code : Tout sélectionner

dim PysConnection as object

PysConnection = PysEvent.Source.Model.Parent.ActiveConnection
...
...
          
PysSQL = "INSERT INTO ""copie de " & PysACopierNom & """ "&_
                      " ( SELECT """ & PysACopierNom & """.""*"" FROM """ & PysACopierNom & """)"
          
PysRequete = PysConnection.createStatement()
PysResultat = PysRequete.executeQuery(PysSQL)
               
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Shlo'k
NOOuvel adepte
NOOuvel adepte
Messages : 13
Inscription : 06 mai 2010 07:32

Re: [Base] Connexion à la base

Message par Shlo'k »

Aïe, oui je l'avais lu, mais je n'avais pas vu la ligne suivante et ça me posait problème

Code : Tout sélectionner

PysConnection = PysEvent.Source.Model.Parent.ActiveConnection
Merci beaucoup, je vais bientôt pouvoir aller dormir ... ! :aie:
OOo 3.2.0 sous Windows Vista