lbensch
Messages postés55Date d'inscriptionvendredi 1 avril 2005StatutMembreDernière intervention10 juin 2010
-
7 oct. 2005 à 16:03
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 2014
-
11 oct. 2005 à 16:21
Bonjour,
Je dois créer un ActiveX qui se connecte à une base de données, afin, que plusieurs executables puisse partager la même connexion (une session Oracle).
Mais je n'arrive ni à créer un ActiveX et encore moins à défnir un TDatabase comme propriété !
Est-ce que quelqu'un aurait déjà fait ce genre de tavail ou aurait une idée de la réalisation.
lbensch
Messages postés55Date d'inscriptionvendredi 1 avril 2005StatutMembreDernière intervention10 juin 2010 10 oct. 2005 à 08:27
Justement, je voudrais pouvoir passer une connexion ouverte et pouvoir la réutiliser, en mettant le TDatabase en paramètre.
J'avais pensé à une autre solution : Une DLL avec un espace mémoire partagée, dans lequel je copirais le TDatabase et ensuite je pourrais le récuperer lors des besoins.
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 11 oct. 2005 à 12:48
Le problème est que le "code" de la DLL n' a qu' 1 copie en mémoire (c' est le principe d' 1 dll) mais que ses variables et objets sont dupliqués par chaque programme qui appelle cette dll.
Pour expliquer, crées 2 fonctions dans ta dll, 1 pour lire une variable et l' autre pour y écrire sa valeur.
Si tu appelles ces 2 fonctions dans 2 programmes (ou le même avec 2 instances), tu manipules pas 1 variable mais 2 ! Une pour chaque programme...
lbensch
Messages postés55Date d'inscriptionvendredi 1 avril 2005StatutMembreDernière intervention10 juin 2010 11 oct. 2005 à 13:47
J'ai effectivement compris cela en grattant un peu, mais il doit bien y avoir un moyen de faire en sorte que plusieurs programmes (exe) utilisent la même connexion à une base de données en evitant de préférence MIDAS car je ne veux pas utiliser le BDE.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 11 oct. 2005 à 14:49
Je ne pense pas que se soit possible... Ton problème serait-il le nombre maximum de connexions? Combien d' exe tu fais tourner? sur combien de PCs?
Je risque d' avoir le même problème si mes utilisateurs augmentent ... J' ai moi aussi divisé mon appli en plusieurs exe pour la facilité de codage+mise à jour du code. A+
lbensch
Messages postés55Date d'inscriptionvendredi 1 avril 2005StatutMembreDernière intervention10 juin 2010 11 oct. 2005 à 16:03
Le principe est simplement d'ajouter une option à mon application, mais comme mon application tourne sous Oracle, et vu la taille de mes clients, Oracle les factures à la connexion. Donc, je ne peux pas me permettre de dire aux clients qu'ils doivent acheter deux fois plus de licences s'ils prennent l'option, d'où mon besoin : Une seule connexion pour mon appli et mon option.
Je reste persuadé que ceci est possible, je ne dois pas être le premier a avoir ce besoin. Mais je n'arrive pas à trouver de solution que ce soit dans les forums, site spécialisés, Borland, Oracle, etc...
Et vu les contraintes de coût liées à Oracle, je vais me retrouver obligé de mettre mon option dans mon application ou en bpl dynamique, perdant ainsi l'objectif qui était de pouvoir développer mon option avec D2005 .Net alors que mon application est en D5.