Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Outils > XMLRAD
XMLRAD Environnement de développement Web XML/XSL. Avant de poster -> F.A.Q XMLRAD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/06/2006, 09h57   #1
Nouveau Membre du Club
 
Inscription : avril 2003
Messages : 94
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 94
Points : 27
Points : 27
Par défaut Permutation dynamique datasource "locale" temporaire

Bonjour

Est-il possible de permutter, pour 1 utilisateur, une datasource sans impacter les autres utilisateurs connectée à mon appli ? J'ai bien trouvée sur le forum qqs discutions de 2003 mais rien de frais, d'où ma relance. Le but est vous l'aurez deviné de piocher dans 2 DB différentes sans que je modifie toutes mes queries !
A bientot

Nico
LeCaméléon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2006, 13h58   #2
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
c'est possible (mais pas recommandé !) et les discussions de 2003 sont toujours d'actualité cela concerne XMLC_DynamicDatabases dans les initparams
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2006, 14h04   #3
Nouveau Membre du Club
 
Inscription : avril 2003
Messages : 94
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 94
Points : 27
Points : 27
Tu veux dire qu'en passant XMLC_DynamicDatabases à 1, je peux permuter de datasource au niveau utilisateur (et donc pas toucher à mon appli) ? Si oui, pour n'est ce pas recommandé ?
LeCaméléon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2006, 10h49   #4
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
oui il faut XMLC_dynamicDatabase à 1 dans initPArams et un fichier Databases.xml

http://www.developpez.net/forums/d38984/webmasters-developpement-web/outils/xmlrad/user-base-donnee/

ce n'est pas recommandé car, par défaut, pour chaque XMLCollection, la connexion est conservée ouverte vers la base de données ce qui permet de ne pas se reconnecté a chaque requête ce qui est couteux.
si tu actives XMLc_DynamicDatabases, pour chaque requête le framework est obligé de déconnecter la connexion précédente et de connecté la base courante ce qui amène un surcout pour chaque requête.
Sans compter que l'on perd la préparation de toutes les requêtes SQL des XMLGram, qu'il faut donc repréparer a chaque nouvelle requête HTTP.
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2006, 18h26   #5
Nouveau Membre du Club
 
Inscription : avril 2003
Messages : 94
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 94
Points : 27
Points : 27
Bon ok, merci pour tes explications (je n'avais pas lu ce thread merci).
Je vais cogiter vers quoi je m'oriente ..

A+

nico
LeCaméléon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2006, 00h57   #6
Membre à l'essai
 
Inscription : janvier 2003
Messages : 95
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 95
Points : 23
Points : 23
J'utilise perso cette modification de la
procedure TDataInstruction.CreateQuery;
dans xmlgram.pas :

FQueryShared := False;
FQuery := TDacQuery.Create(nil);
FQuery.Name := Self.Name;
DbN:=XmlGram.XmlCollection.XMLRequest.Context.Values['dbname'];
if DbN<>'' then DataSource:=DbN;
Query.Database := MLGram.XMLCollection.GetDatabaseComponent(DataSource);

Query.ParamTypes.Text := List.Text;
Query.SQL.Text := Statement;

qui permet que la querie utilise éventuellement la datasource dont le nom est passé dans le paramètre dbname ( en déclarant une variable string DbN dans la procédure)
clisson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2006, 12h08   #7
Nouveau Membre du Club
 
Inscription : avril 2003
Messages : 94
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 94
Points : 27
Points : 27
Ah sympa la modif, qui me permet de conserver mon code
Tu en penses quoi RDM ?

Merci de votre intérêt pour ce post en tout cas ...

nico
LeCaméléon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2006, 13h36   #8
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
Le code ne fait pas ce que LeCaméléon demande a savoir changement de base de donnée sur une requête précise (ou un utilisateur).

dans le code de Clisson on crée un query lors de la première execution du XMLGram et elle sera conservée pour tous les autres appels donc ca ne permet pas de changer de base de données dynamiquement. CreateQuery est appelé par prepareFromDOMElement qui est appelé une seule fois tant que que XMLGram n'a pas changé.

de plsu modifié le framework n'est pas uen chose que l'on recommande pour des raisons de migrations vers les versiosns suivantes.
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 11h34   #9
Membre à l'essai
 
Inscription : janvier 2003
Messages : 95
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 95
Points : 23
Points : 23
Pourtant je peux assurer qu'il suffit après de changer le paramètre dbname, et on passe d'une base à l'autre, même avec un dbextract sans paramètres, et donc un xmlgram identique d'un appel à l'autre...

Je suis sur des bases Informix, auxquelles j'accède par un driver ODBC, peut-être cela joue-t-il sur le fait que CreateQuery est appelé à chaque fois ?

Sinon je suis bien d'accord qu'il vaut mieux ne pas devoir modifier le framework.
clisson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 23h04   #10
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
non le type de base de données n'a rien a voir
j'ai du mal comprendre comment cela pourrait fonctionner...
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h14.


 
 
 
 
Partenaires

Hébergement Web