Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
970 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Session de bdd partagée

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Session de bdd partagée

n°1219297
reivax57
Posté le 10-10-2005 à 10:20:45  profilanswer
 

Salut,
 
J'essaie de partager une session de base de données entre plusieurs appli.
Pour cela, j'utilise une zone de mémoire partagée (zmp) à partir d'une dll.
 
La première appli se connecte à la base et copie la session dans la zmp avec CreateFileMapping, MapViewOfFile et CopyMemory.
 
La deuxième appli récupère la session de la zmp avec OpenFileMapping et MapViewOfFile.
 
Le pb c'est que ça plante avec une violation  :non:  d'accès.
En fait le partage de chaines ou d'entiers marche très bien mais dès que l'on veut partager autre chose alors là, c'est un feu d'artifice.
 
Quelqu'un a-t-il une expérience là dessus ? Des pistes ? Des exemples de code ?  :jap:  
 
Merci
A+ :hello:  
Xavier.

mood
Publicité
Posté le 10-10-2005 à 10:20:45  profilanswer
 

n°1220051
antp
Super Administrateur
Champion des excuses bidons
Posté le 10-10-2005 à 22:53:21  profilanswer
 

Et c'est quoi ces "autres choses" que tu partages [:totoz] Si ce sont des classes c'est normal que ça plante...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1220150
reivax57
Posté le 11-10-2005 à 09:41:27  profilanswer
 

Ces "autres choses" peuvent être un TDatabase, un TOraSession, un TQuery, ... de quoi se connecter à une bdd ou en récupérer des données.
 
Pourquoi est-ce normal que ça plante ?
Il est quand même possible que deux exe partagent la même mémoire. Donc si on met l'adresse du pointeur d'un objet en zmp, on doit quand même pouvoir le récupérer et accéder à l'objet dans le deuxième exe.
 
N'y aurait-il pas un pb d'offset ?

n°1220209
antp
Super Administrateur
Champion des excuses bidons
Posté le 11-10-2005 à 10:32:57  profilanswer
 

Chaque exe a ses propres classes. Pour toi elles ont le même nom, pour lui les objets pointent vers des classes différentes... Ce que tu passes comme étant un TDatabase, il le reçoit comme un objet de type "classe à l'adresse XYZ", mais cette adresse XYZ est dans l'espace mémoire de l'autre application. Son TDatabase a lui c'est la classe à l'adresse ABC par exemple.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Session de bdd partagée

 

Sujets relatifs
Fermer une session en quittant le sitefichier ayant un temps de validité comme une session..
declarer une variable de session dans une fonctioneffacer des données bdd apres expiration d'une session
Quel est la durée de vie d'une variable sessionproblème de session avec Easyphp [RESOLU]
[RESOLU]stocker des valeurs en tableau de session ...?[ASP.NET] La session se vide ...
Variable de sessionVariable de session ne passe pas...
Plus de sujets relatifs à : Session de bdd partagée


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR