Gambas France BETA


Pas de compte ? Incription

No Current Connection !

Ce sujet est résolu.

1
AuteurMessages
manu#1 Posté le 31/10/2011 à 13:55:00
Avec Gambas ca roule !Bon j 'ai une application connectée à une base de données par la fonction suisvante :

1
2
3
4
5
6
WITH maconnect = NEW Connection 'de with à end with on defini la connexion
.Type = "sqlite3"
.Host = User.Home
.Name = NomBase
END WITH
maconnect.OPEN


Dans un formulaire "Form1", j'effectue plusieurs requêtes sans problème.

Je créé un second formulaire "Form2" et fait un copier coller d'une des requête de "Form1". Quand je charge "Form2", j'ai le message "No Current Connection" !

Etrange non ?
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)
gambix#2 Posté le 31/10/2011 à 14:47:06
Faire simple !maconnection est bien un private globale de form1 ?
form1 n'est pas fermé avant l'utilisation de form2 ?
Moins de texte dans une signature c'est agrandir son espace.
gambix#3 Posté le 31/10/2011 à 14:48:00
Faire simple !au fait le chat refonctionne !
Moins de texte dans une signature c'est agrandir son espace.
manu#4 Posté le 31/10/2011 à 19:19:24
Avec Gambas ca roule !MaConnect est un déclarée en public dans un module. Cette fonction est lançée à l'ouverture de FMain .

Chaque Form est lancé de la même manière : Workspace1.add(Form1) et Workspace1.add(Form2).

Effectivement si Form1 reste ouvert, la connexion est trouvée a l'ouverture du form2 ! Mais là je comprend pas ce que je dois faire.

je recapitule ce que je fais :

Mon FMain :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
' Gambas class file

PUBLIC SUB _new()

END

PUBLIC SUB Form_Open()

base.OuvreBDD("ration") ' j'ouvre ma connexion

ME.Maximized = TRUE

Workspace1.Width = ME.Width
Workspace1.X = 30
Workspace1.Height = ME.Height
Workspace1.Y = 30

END

PUBLIC SUB ToolButton4_Click()

Workspace1.Add(FRation) 'Form1

END

PUBLIC SUB btnSave_Click()
Workspace1.Add(FAlimentNv) ' Form2

END


Mon Module Base :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
' Gambas module file

PUBLIC maconnect AS Connection
' Public unetable As Table

PUBLIC SUB OuvreBDD(NomBase AS STRING)

'---------------------- TEST SI LA BASE EXISTE -----------------------
maconnect = NEW Connection
WITH maconnect 'de with à end with on defini la connexion
.Type = "sqlite3"
.Host = User.Home
END WITH
maconnect.OPEN 'on ouvre la connexion
IF NOT maconnect.Databases.Exist(NomBase) THEN 'on testel'existence de la base
maconnect.Databases.Add(NomBase)
maconnect.close 'on ferme la connexion

ENDIF
'---------------------- OUVERTURE LA CONNEXION AVEC LA BASE -----------------------

WITH maconnect = NEW Connection 'de with à end with on defini la connexion
.Type = "sqlite3"
.Host = User.Home
.Name = NomBase
END WITH
maconnect.OPEN 'on ouvre la connexion (en indiquant le nom de la base passé en parametre)
' Message.info((NomBase) & " connectée")

END
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)
gambix#5 Posté le 31/10/2011 à 20:55:23
Faire simple !a tu testé comme ça ?
1
2
3
4
5
6
7
maconnect = NEW Connection
WITH maconnect 'de with à end with on defini la connexion
.Type = "sqlite3"
.Host = User.Home
.Name = NomBase
END WITH
maconnect.OPEN
Moins de texte dans une signature c'est agrandir son espace.
manu#6 Posté le 1/11/2011 à 10:32:23
Avec Gambas ca roule !Donc après discutions sur le chat avec Gambix, le problème est résolu mais grâce à un tour de magie :)

En effet, pour connecter ma base de données, je le faisait "à l'ancienne" avec ma fonction OuvreBDD qui défini les propriétés de la Connexion.
Hors, la base de données en question, je l'ai créé avec l'IDE de Gambas et ces propriétés (Nom de la connexion, Nom de la base, type de la base, chemin d’accès, Mot de passe, etc) ont donc déjà été défini. Il suffit donc d'ouvrir la connexion et pour le faire, attention .... miracle de la technique : une ligne suffit

dans _New de mon FMain:
1
Connections["Connection1"].Open


Connection1 étant le nom de ma connexion (défini par défaut par l'IDE) .

Ceci étant dit, je ne comprends pas pourquoi ce que j'avais fait ne fonctionne pas. Est ce un Bug que je dois signaler ?

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)
gambix#7 Posté le 1/11/2011 à 11:07:35
Faire simple !non c'était pas un bug mais il y avait conflit avec datasource

enfin je crois

Moins de texte dans une signature c'est agrandir son espace.
jeanyvon#8 Posté le 1/11/2011 à 13:11:59
Gambas? Ma! Et gustoSalut,
1) là non plus je n'ai pas posté mais je suis averti.
2) comment on connaît le N° de connection ou sa référence? ou autrement dit comment gambas assigne un nom à une connection?
Merci
@+
JY
Vieillir? On peut retarder mais pas y échapper!
manu#9 Posté le 1/11/2011 à 21:01:31
Avec Gambas ca roule !Bein comme ca Jean Yvon :

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)
jeanyvon#10 Posté le 2/11/2011 à 07:17:15
Gambas? Ma! Et gustoOk, merci Manu!
Vieillir? On peut retarder mais pas y échapper!
1