|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : avril 2003 Messages : 94 ![]() |
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 |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() |
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/ |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : avril 2003 Messages : 94 ![]() |
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é ?
|
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() |
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/ |
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : avril 2003 Messages : 94 ![]() |
Bon ok, merci pour tes explications (je n'avais pas lu ce thread merci).
Je vais cogiter vers quoi je m'oriente .. A+ nico |
|
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Inscription : janvier 2003 Messages : 95 ![]() |
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) |
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : avril 2003 Messages : 94 ![]() |
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 |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() |
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/ |
|
|
00
|
|
|
#9 |
|
Membre à l'essai
![]() Inscription : janvier 2003 Messages : 95 ![]() |
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. |
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() |
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/ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com