OVH Cloud OVH Cloud

[Wd9] Connnexion / deconnexion HF C/S

10 réponses
Avatar
Emmanuel Haefele
Bonjour,

Dans mon appli j'ai la possibilité de changer de base et donc de passer
d'une base HF C/S vers du HF classique et vis-et-versa.

Je me connecte à une base HF C/S via la fonction HDécritConnexion,
HOuvreConnexion et pour me déconnecter je fais tout naturellement un
HFermeConnexion.

Si je fais un HFermeConnexion de ma base en cours en HF C/S puis un
HSubstRep sur ma nouvelle base en HF classique, bizarrement je reste
connecté sur la base HF C/S. Pour que ça fonctionne il faut que je quitte
l'appli puis que je la relance !

Est-ce que quelque chose m'a échappé, ANTOINE tu n'as pas une petite idée
par hasard ?


Amicalement,

Emmanuel Haefelé.

10 réponses

Avatar
Arnaud Trotignon
Emmanuel Haefele a écrit :

Si je fais un HFermeConnexion de ma base en cours en HF C/S puis un
HSubstRep sur ma nouvelle base en HF classique, bizarrement je reste
connecté sur la base HF C/S. Pour que ça fonctionne il faut que je quitte
l'appli puis que je la relance !




Exact, j'ai rencontré le même soucis... Pas de réponse aujourd'hui...

A++
Avatar
Romain PETIT
Bonsoir,

Arnaud Trotignon a écrit :
Emmanuel Haefele a écrit :
Si je fais un HFermeConnexion de ma base en cours en HF C/S puis un
HSubstRep sur ma nouvelle base en HF classique, bizarrement je reste
connecté sur la base HF C/S. Pour que ça fonctionne il faut que je quitte
l'appli puis que je la relance !





Exact, j'ai rencontré le même soucis... Pas de réponse aujourd'hui...



Tiens, je viens d'avoir à peu près les mêmes soucis...avec une base
HF5.5...
Une fois qu'un HSubstRep est défini, il n'est pas possible d'attribuer
un nouveau chemin par la suite (un autre HSubstRep, un Hassigne, ou
même un alias, et ceci même en fermant les fichiers).
Il est nécessaire d'utiliser dès le départ un HAssigne pour chacun des
fichiers, individuellement (avec une boucle sur HListeFichier).

Je ne sais pas si le problème avec la base HF/CS est similaire, mais
c'est peut être une piste.

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
ANTOINE
Merci de penser à moi.

Je ne voit pas le pb, une idée comme une autre
Peut-être un hchangeconnexion oublié ? on pense fermer la bonne connexion
mais ce n'est pas le cas ?

Antoine


"Emmanuel Haefele" a écrit dans le message de news:
43a692ad$0$21267$
Bonjour,

Dans mon appli j'ai la possibilité de changer de base et donc de passer
d'une base HF C/S vers du HF classique et vis-et-versa.

Je me connecte à une base HF C/S via la fonction HDécritConnexion,
HOuvreConnexion et pour me déconnecter je fais tout naturellement un
HFermeConnexion.

Si je fais un HFermeConnexion de ma base en cours en HF C/S puis un
HSubstRep sur ma nouvelle base en HF classique, bizarrement je reste
connecté sur la base HF C/S. Pour que ça fonctionne il faut que je quitte
l'appli puis que je la relance !

Est-ce que quelque chose m'a échappé, ANTOINE tu n'as pas une petite idée
par hasard ?


Amicalement,

Emmanuel Haefelé.



Avatar
Emmanuel Haefele
"ANTOINE" a écrit dans le message de
news:43a72798$0$30396$

Bonjour Antoine,

Je ne voit pas le pb, une idée comme une autre
Peut-être un hchangeconnexion oublié ? on pense fermer la bonne
connexion mais ce n'est pas le cas ?



J'utilise effectivement un hchangeconnexion et fait la chose suivante :

// Ouverture
SI PAS HDécritConnexion( sNomConnexion, ... ) ALORS
Info(HErreurInfo)
RETOUR
FIN
SI PAS HOuvreConnexion(sNomConnexion) ALORS
Info(HErreurInfo)
RETOUR
FIN
SI PAS HChangeConnexion( "*", sNomConnexion ) ALORS
Info(HErreurInfo)
RETOUR
FIN

Info ( HNbEnr ( "UTIL" ) ) // rend 7

// Fermeture
HFerme("")

SI PAS HFermeConnexion(sNomConnexion) ALORS
Info(HErreurInfo)
RETOUR
FIN

HSubstRep( "?", sMonRepFichier )

Info ( HNbEnr ( "UTIL" ) ) // rend 7 au lieu de 9

Il est possible que ce ne soit pas suffisant, il manque quelque chose
d'après toi ?


Amicalement,

Emmanuel Haefelé.
Avatar
Romain PETIT
Romain PETIT a pensé très fort :

Précisions :

Tiens, je viens d'avoir à peu près les mêmes soucis...avec une base HF5.5...
Une fois qu'un HSubstRep est défini, il n'est pas possible d'attribuer un
nouveau chemin par la suite (un autre HSubstRep,



Si, un autre HSubstRep fonctionne...

un Hassigne, ou même un
alias, et ceci même en fermant les fichiers).



Là, ca ne fonctionne plus, les fichiers réassignés sont quand même
créés dans le rep défini par HSbustrep :

sDateHeure est une chaine = "_" + datesys()+"_"+heuresys()
HSubstrep("*", "c:tests")
HSubstNom("FICHIER", "FICHIER"+ sDateheure)
hcreationsiinexistant("FICHIER")
hferme("FICHIER")
HSubstrep("*", "c:")
HCreationSiinexistant("FICHIER")

-> Ok, les 2 fichiers sont dans les 2 répertoires


sDateHeure est une chaine = "_" + datesys()+"_"+heuresys()
HSubstrep("*", "c:tests")
HSubstNom("FICHIER", "FICHIER"+ sDateheure)
hcreationsiinexistant("FICHIER")
hferme("FICHIER")
Hassigne("FICHIER", "c:")
HCreationSiinexistant("FICHIER")

-> NOk, le Hassigne n'a pas opéré...

A moins que quelque chose m'ait échappé ?
(j'avais besoin de réassigner un seul des fichiers de l'analyse...)

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Romain PETIT
Dans son message précédent, Romain PETIT a écrit :
A moins que quelque chose m'ait échappé ?
(j'avais besoin de réassigner un seul des fichiers de l'analyse...)



Oups, je crois bien que c'est parce que j'ai utilisé HSubstRep("*",..)
au lieu de HSubstRep("?", ...)

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
ANTOINE
Maintenant, il faut utiliser hChangeRep, c'est plus simple.
<Résultat> = HChangeRep(<Nom logique du fichier>, <Nouveau chemin du
fichier>)

Antoine

"Romain PETIT" a écrit dans le message de news:

Dans son message précédent, Romain PETIT a écrit :
A moins que quelque chose m'ait échappé ?
(j'avais besoin de réassigner un seul des fichiers de l'analyse...)



Oups, je crois bien que c'est parce que j'ai utilisé HSubstRep("*",..) au
lieu de HSubstRep("?", ...)

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)




Avatar
Marcel Vincent
"Emmanuel Haefele" a écrit dans le message de news:
43a692ad$0$21267$
Bonjour,

Dans mon appli j'ai la possibilité de changer de base et donc de passer
d'une base HF C/S vers du HF classique et vis-et-versa.

Je me connecte à une base HF C/S via la fonction HDécritConnexion,
HOuvreConnexion et pour me déconnecter je fais tout naturellement un
HFermeConnexion.

Si je fais un HFermeConnexion de ma base en cours en HF C/S puis un
HSubstRep sur ma nouvelle base en HF classique, bizarrement je reste
connecté sur la base HF C/S. Pour que ça fonctionne il faut que je quitte
l'appli puis que je la relance !

Est-ce que quelque chose m'a échappé, ANTOINE tu n'as pas une petite idée
par hasard ?


Amicalement,

Emmanuel Haefelé.



Je me rappelle d'un vague probleme similaire que j'avais eu y a deja
quelques mois
ou je faisais comme toi je basculais d'une connexion classique vers une
connexion client/serveur
et Vice versa. Alors le premier coup ca marchait et apres j'avais des
problemes et fallait ressortir.
Donc ton probleme ressemble fortement a celui que j'avais eu,a l'epoque je
l'avais solutionné en
fermant ma connexion existante comme suis :
Hferme("*")
Hfermeconnexion("NomBase")

Et apres je pouvais me reconnecter sans probleme et passer d'un mode a
l'autre autant de fois que je voulais.
Par contre c'etait au mois d'avril que j'ai fait tout avec une autre version
de WD9, et depuis j'ai pas réessayer
Ouppss j'espere que ca marche encore?
Avatar
Emmanuel Haefele
"Arnaud Trotignon" a écrit dans le message
de news:43a6f049$0$21294$
Emmanuel Haefele a écrit :



> Si je fais un HFermeConnexion de ma base en cours en HF C/S puis un
> HSubstRep sur ma nouvelle base en HF classique, bizarrement je reste
> connecté sur la base HF C/S. Pour que ça fonctionne il faut que je
> quitte l'appli puis que je la relance !

Exact, j'ai rencontré le même soucis... Pas de réponse aujourd'hui...



Finalement une solution existe, il faut faire la chose suivante :

// Ouverture en HF C/S
HDécritConnexion( sNomConnexion, ... )
HOuvreConnexion(sNomConnexion)
HChangeConnexion( "*", sNomConnexion )

// Fermeture en HF C/S
HFerme("")
HChangeConnexion( "*", "" )
HFermeConnexion(sNomConnexion)

// Réouverture en HF classique
HSubstRep( "?", sMonRepFichier )

La seul différence est le rajout à la fermeture de la ligne
HChangeConnexion( "*", "" ), sans elle ça ne fonctionne pas. Je ne
comprends pas très bien pourquoi il faut ce HChangeConnexion mais là c'est
ok.


Amicalement,

Emmanuel Haefelé.
Avatar
Arnaud Trotignon
Emmanuel Haefele a écrit :

La seul différence est le rajout à la fermeture de la ligne
HChangeConnexion( "*", "" ), sans elle ça ne fonctionne pas. Je ne
comprends pas très bien pourquoi il faut ce HChangeConnexion mais là c'est
ok.



Merci, je testerai quand j'aurai 3 mn