OVH Cloud OVH Cloud

Composant qui me laisse décomposé !

3 réponses
Avatar
Roumegou
Gros mal de tête !

Je ne comprends pas ce qui se passe avec une connexion par sqlconnecte.

Cela perd la connexion sgbd au bout de 2 niveaux de composants.

je me connecte depuis le projet
j'appelle un composant; la connexion sgbd est ok
ce composant appelle un composant ; il n'y a plus de connexion active.

Cela le fait avec les accès natif pcsoft mySQL et Oracle.
Cela ne le fait pas avec les accès alternatifs ?

Qui a une idée ? Parmis les alternativistes, qui sait pourquoi le
comportement est différent ?

--
Eric Roumegou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)

3 réponses

Avatar
elecoest
> Cela le fait avec les accès natif pcsoft mySQL et Oracle.
Cela ne le fait pas avec les accès alternatifs ?



Un bon point pour nous :-)

Qui a une idée ? Parmis les alternativistes, qui sait pourquoi le
comportement est différent ?



Une idée comme çà : je dirais que cela vient de la gestion de la connexion à
la base par Windev. Avec les accès de l'éditeur, tout ce fait au sein du
composant (certainement) au même sens que cela le fait avec ton programme.
Avec les accès alternatifs, comme tu charges (physiquement) une DLL tu
utilises un espace mémoire allouée SPECIFIQUEMENT pour ta connexion. Elle
reste donc ouverte et n'est pas susceptible d'être ecrasée par un autre
objet.

Sinon, pourquoie ne pas créé un compoasnt thread de connexion sur le poste
client qui serait à l'écoute de tes composants métier ?

--
Emmanuel



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.618 / Virus Database: 397 - Release Date: 09/03/2004
Avatar
Roumegou
Plus de précisions avec des projets et composants simples.

Depuis un projet Niv1, je me connecte par sql connecte accès SGBD OK
j'appelle un composant Niv2 accès SGBD Ok
Niv2 appelle un composant Niv3 accès SGBD Ok

La connexion sgbd est maintenue. Par contre il faut que Niv1 ait
importé les composants Niv2 et Niv3 (meme si Niv3 n'est appelé que
depuis Niv2).

Si Depuis Niv1, je me connecte en utilisant un objet de Niv3 (proc
globale de Niv3: ConnecteToi()); je n'aurais pas l'accès dans Niv2.
(sauf apparamment, si j'utilise des classes ou fonction du composant
Niv3)

Conclusion : La connexion doit se faire dans le projet de 1er Niveau;
sans utiliser d'objet d'un composant.
Mais ce que je ne comprends pas encore, c'est que si je me connecte "en
dur" dans mon premier projet, dès que j'accède à la base en utilisant
mon composant de gestion des sgbd (classes et fonctions); je n'ai pas
la connexion.
Cette idée "d'encapsuler" (pardon si le terme est impropre) mes
classes d'accès natifs dans un composant butte là dessus.

--
Eric Roumegou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Roumegou
Roumegou vient de nous annoncer :

Oui, c'est bien cela. Avec les accès natifs, la portée de la connexion
ne va que dans l'objet lui meme et dans les objets appelés.

Il n'est pas possible de se connecter avec un composant et d'accèder
ensuite en dehors de ce composant au sgbd.

Bref, je suis dans la mouise !
Qu'est ce que ça peut me faire ch... de passer toute une journée pour
m'apercevoir que c'est une bonne grosse limite de Windev.:

Comment éviter d'avoir les classes et procédures plusieurs fois lorsque
l'on utilise des composants ?
On m'avais promis des problèmes là dessus ... je confirme.

--
Eric Roumegou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)