Gambas France BETA


Pas de compte ? Incription

gb.db

Ce sujet est résolu.

1
AuteurMessages
valaquarus#1 Posté le 9/3/2024 à 12:55:32
-- Unus Ex Altera --Bonjour à tous,
j'ai besoin d'aide pour la gestion d'une base de données avec le composant gb.db.form uniquement.
Comment faire en sorte que la connection issue de gb.db ne démarre qu'après mon module de début de programme,
pour pouvoir choisir l'endroit où va se située ma base et pas en vrac dans le home ?
Par le code c'est facile mais avec ce composant je ne sais pas faire.
Merci.
Système d'exploitation : KDE neon 6.0.2 ~ Version Gambas : 3.19.90
valaquarus#2 Posté le 9/3/2024 à 15:14:58
-- Unus Ex Altera --Le créateur de paquet d'installation créé bien ma base à l'endroit voulu mais l'attribue à root systématiquement donc je ne peux écrire sur la base.
Que changer pour que cela n'arrive plus?
Système d'exploitation : KDE neon 6.0.2 ~ Version Gambas : 3.19.90
spheris#3 Posté le 9/3/2024 à 19:23:39
Changer de PC?
:joker: :joker:
jeanyvon#4 Posté le 9/3/2024 à 19:40:48
Gambas? Ma! Et gustohello!
j’établis ma connection quand je veux dans le code.
1
2
3
4
5
6
IF NOT Exist(installe.repBdD & "/" & nom_de_base) THEN
maconnexion.Host = installe.repBdD
maconnexion.Name = ""
maconnexion.Type = "sqlite3"
maconnexion.Open
maconnexion.Databases.Add(nom_de_base)

je ne me sers pas de la connection dans l'ide.
Elle n'est pas dédiée à root, mais comme un fichier texte ou autre, j'en détiens les droits.
Vieillir? On peut retarder mais pas y échapper!
spheris#5 Posté le 9/3/2024 à 19:53:37
Jeanyvon,
Merci pour ta réponse, mais malheureusement tu as du répondre un peu trop vite.
Relis attentivement la question de Valaquarus, il s'agit d'une question sur un problème lors de l'utilisation du composant gb.db.form, un composant qui permet de gérer les bdd.
Je ne l'utilise jamais, je préfère faire comme tu l'as décris précédemment.
;)
valaquarus#6 Posté le 9/3/2024 à 21:49:05
-- Unus Ex Altera --Oui,
merci de vos réponses mais effectivement Sphéris a raison il s'agit d'un problème lié au composant gb.db.form dont je ne me sert pas non plus mais là exceptionnellement pour une démonstration.
Comme je voudrais la rendre distribuable par un paquet, je voudrais tout empaqueter d'où la question concernant le moment où la connexion est initialisée par le programme et le lancement du formulaire.

J'aimerai un jour changer de PC mais d'autres urgences prennent le pas sur ce changement :affraid:
Système d'exploitation : KDE neon 6.0.2 ~ Version Gambas : 3.19.90
valaquarus#7 Posté le 9/3/2024 à 23:06:48
-- Unus Ex Altera --La réponse semble là :
1
Connections.Create("hConn")


Connections.Create (gb.db)
DEPUIS 3.7
Static Function Create ( Name As String ) As Connection
Return a Connection object defined in the IDE, and initialize it.
Name : the name of the connection defined in the IDE.
The database defined by the connection object is created if it does not exist.
The database tables and indexes are created and initialized from the internal template description associated with the connection.


Mais ça ne fait pas ce que cela dit !
Système d'exploitation : KDE neon 6.0.2 ~ Version Gambas : 3.19.90
valaquarus#8 Posté le 10/3/2024 à 10:31:32
-- Unus Ex Altera --Pour information :
Pour que cela fonctionne il faut :

- créer la connexion dans l'IDE
- créer la base de données dans le répertoire Données de l'IDE, pour cela clique droit sur la connexion, renseigner l'adresse par défaut du projet et sélectionner la base
- dans votre programme avant le lancement du formulaire (dans un module de démarrage) :
1
2
3
4
Connections["hConn"].Host = User.home &/ T2
Connections["hConn"].Name = "LaBase"
Connections.Create("hConn")
WAIT 0.5

Avec "Create" toute la structure est recréée et la connexion ouverte.
Ici T2 est un string représentant l'emplacement de dépôt de votre base, bien sûr il convient auparavant de vérifier et créer le dit répertoire de dépôt.

Voir ici un exemple sur ce thème : Création base par l'IDE

Système d'exploitation : KDE neon 6.0.2 ~ Version Gambas : 3.19.90
1