Gambas France BETA


Pas de compte ? Incription

Gb3 et application .path

Ce sujet est résolu.

12
AuteurMessages
lapenduledargent#1 Posté le 7/11/2011 à 21:04:10
Bonsoir à tous,

En Gb2, pour définir le chemin de la banque de données, je fais une variable du style:

1
PUBLIC sPlace AS STRING = Application.Path ' Emplacement de la base dans le répertoire du programme


En Gb3, plus besoin vus qu'il existe la manière graphique de définir une connexion mais comment faire lorsqu'on installe le programme sur une autre machine avec un chemin différent ?

A bientôt

Pierre
jeanyvon#2 Posté le 8/11/2011 à 07:21:16
Gambas? Ma! Et gustoHello!
Si tu créés ta base de donnés dans application.path, sans doute le répertoire su projet. Elle sera compilé avec le projet. Si tu veux autre chose comme //home/pierre/mesbases-de-données il faut donner et créer le répertoire au moment de l’installation de l'application
1
2
PUBLIC nom_de_base AS STRING = "noscomptes.sq3"
PUBLIC repBdD AS STRING = User.home & "/BdDmicrocompte"

c'est du 2 mais ça fonctionne ne 3
@+
JY
Vieillir? On peut retarder mais pas y échapper!
lapenduledargent#3 Posté le 8/11/2011 à 07:59:59
Bonjour J-Y,

Oui c'est ce que je fais en Gb2 mais en Gb3, j'utilise la nouvelle méthode graphique pour définir la connexion mais dans ce cas, je sais pas utiliser une variable pour mon chemin puisque c'est le programme qui ouvre une boite de dialogue pour choisir un répertoire et je sais pas comment utiliser application.path dans ce cas.

Bonne journée

Pierre
lapenduledargent#4 Posté le 8/11/2011 à 21:04:13
Bonsoir,

Dans un dossier caché de l'application, appelé ".connection", j'ai vu qu'il existe un fichier Connection1.connection
Dans ce fichier, il est renseigné le chemin. J'ai essayé de le remplacer par Application.Path mais sans succès.

Peut-être une piste ?

A bientôt
manu#5 Posté le 8/11/2011 à 22:21:14
Avec Gambas ca roule !je ne suis pas sûre de comprendre la question...

Si tu créé ton application dans le dossier /home/pierre/ApplicationPierre et que tu met ta Base de données dans /home/pierre/.BasesDonnées alors quand je l'installerai sur mon ordi, je mettrai ton application dans /home/manu/ApplicationPierre et je mettrai la base de données dans /home/manu/.BasesDonnées. Gambas s'occupera du reste... :)
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
lapenduledargent#6 Posté le 9/11/2011 à 07:13:33
Bonjour Manu,

J'aime bien de placer ma banque de donnée dans le même dossier que mon application. Ce qui ne pose pas de problème en Gb2 puisque je sais définir manuellement ma connexion.

Qu'en penses-tu ?

Bonne journée

Pierre
gambix#7 Posté le 9/11/2011 à 10:34:38
Faire simple !dans ton
1
2
3
4
5
6
PUBLIC SUB Main()

Connections["Connetion1"].Host = Application.Path
Connections["Connetion1"].Open
FMain.Show()
END



:)

Tu peut le mettre aussi dans le _New de ton MainForm


En faite c'est de changer le path avant l'ouverture de la base point...

Par contre par défaut application.path renvoit le nom du rep du projet ... qui n'est plus accessible une fois l'exe compilé
Moins de texte dans une signature c'est agrandir son espace.
lapenduledargent#8 Posté le 9/11/2011 à 16:53:59
Bonjour Manu,

J'ai placé ton code dans _New mais au lancement, j'ai un message d'erreur "Null Object" ???

Pierre
gambix#9 Posté le 9/11/2011 à 17:42:08
Faire simple !c'est pas manu mais Fabien,

de plus tu doit avoircréé un objet connection tout de même avec l'ide ... Connection1
Moins de texte dans une signature c'est agrandir son espace.
lapenduledargent#10 Posté le 9/11/2011 à 17:52:56
Oups, bonsoir Fabien,

J'ai bien l'object connection qui est renseigné. Dans L'ide, il existe un répertoire Connexion. Faut-il renseigner ce chemin ?

Pierre
gambix#11 Posté le 9/11/2011 à 18:56:01
Faire simple !Public Sub _new()
Connections["Connection1"].Host = Application.Path
Connections["Connection1"].Open
End

Bon je vien de tester ça fonctionne !

tu doit click droit sur le dossier connection
et générer une nouvelle connection nommée Connection1

tu renseigne tout même un dossier bidon(la le dossier de ton appli)

et tu valide

Moins de texte dans une signature c'est agrandir son espace.
lapenduledargent#12 Posté le 9/11/2011 à 22:23:38
Bonsoir Fabien,

Je viens d'essayer sur un autre pc et ça fonctionne du premier coups. :) :)
Demain, je vais copier sur un clef le programme pour le réessayer sur le premier Pc.


Par contre par défaut application.path renvoit le nom du rep du projet ... qui n'est plus accessible une fois l'exe compilé


Tu veux dire que c'est un inconvénient ?

Bonne nuit

Pierre

manu#13 Posté le 9/11/2011 à 22:45:00
Avec Gambas ca roule !Pierre,

Oui c'est un sacré inconvénient car si ta base de données est dans ton exécutable, tu ne peux plus écrire dedans, seulement lire ce que tu y as mis dedans avant de générer l'excutable. C'est pareil pour les fichiers texte de config ou autre...

C'est pour ça qu'en principe, on met ces fichiers dans d'autres dossiers.

En revanche, si tu ne génére pas d'excutable, et que tu lances tes applications à partir de l'ide, c'est pas génant, mais vraiment pas pratique :tongue:
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
lapenduledargent#14 Posté le 9/11/2011 à 23:13:24
Bonsoir Manu, je ne me trompe pas cette fois !!!

Merci pour tes précisions, c'est très important.
Je suppose que pour éviter les problèmes, lors de l'installation, il faut faire un système qui détecte si le base existe et de choisir son chemin d'installation.

1
En revanche, si tu ne génére pas d'excutable, et que tu lances tes applications à partir de l'ide, c'est pas génant, mais vraiment pas pratique :tongue:


Pour l'instant, c'est en développement alors, je fais une partie à la maison et je copie le matin les fichiers pour continuer pendant la journée entre deux horloges.
C'est pourquoi entre mes copies, c'est plus pratique d'avoir tout dans le même dossier.

Bonne nuit.

Pierre
gambix#15 Posté le 9/11/2011 à 23:17:31
Faire simple !dans ce cas tu fait un dossier dans lequel tu met ton appli et ton fichier et tu utilise un chemin relatif !!

Mon dossier
mondosssierprojet
ma bdd



dossier bdd = file.dir(application.path)

t'a plus qu'a copier Mon Dossier
Moins de texte dans une signature c'est agrandir son espace.
12