IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web & réseau Delphi Discussion :

Support de XML dans Intraweb


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    539
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 539
    Par défaut Support de XML dans Intraweb
    Bonjour tout le monde,

    J'utilise régulièrement des fichier xML pour stocker des informations de configuration, avec le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var ConfFile:TXMLDocument;
    begin
      ConfFile:=tXMLDocument.Create(self);
       ConfFile.DOMVendor:= getDOMVENDOR('MSXML');
       ConfFile.loadfromfile('monfichier.XML');
    Je voudrais faire la même chose dans une application intraweb et j'ai intégré ce code dans l'évènement OnCreate de la classe TIWUserSession et à l'exécution j'ai le message d'erreur
    Microsoft MSXML n'est pas installé
    alors que tout fonctionne normalement en "client lourd"

    Y-a-t'il un paramétrage particulier à faire sur Intraweb?

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par défaut
    Si VCL ?
    Est-ce que CoInitialize() est fait par un objets comme IWSession ... c'est nécessaire pour les objet COM
    C'est "Forms.pas" qui le fait implicitement en VCL

    En plus, il faut le faire pour chaque Thread, une session est-elle gérée dans un thread particulier ?

    Si FMX ou VCL ?
    Cela peut-être l'inclusion de Xml.Win.msxmldom
    Cette inclusion provoque le RegisterDOMVendor correspond à ton implémentation Win (MSXML) ou Mac (ADOM XML v4)

    EDIT :
    Vu ton message, tu dois dépasser le stade du RegisterDOMVendor
    Selon le code c'est TMSXMLDOMDocumentFactory.CreateDOMDocument qui provoque cette erreur sur l'échec d'un TryCoCreateInstance
    Du coup, CoInitialize() semble plus proche de la solution
    Si FMX, faudrait trouver l'équivalent de CoInitialize() en version mutliplateforme ou alors toujours à coup de directive\pattern strategy

    GUID nécessaire que l'on doit trouver dans la base de registre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      CLASS_DOMDocument: TGUID = '{F6D90F11-9C73-11D3-B32E-00C04F990BB4}';
      CLASS_DOMDocument26: TGUID = '{F5078F1B-C551-11D3-89B9-0000F81FE221}';
      CLASS_DOMDocument30: TGUID = '{F5078F32-C551-11D3-89B9-0000F81FE221}';
      CLASS_DOMDocument40: TGUID = '{88D969C0-F192-11D4-A65F-0040963251E5}';
      CLASS_DOMDocument60: TGUID = '{88D96A05-F192-11D4-A65F-0040963251E5}';
    Comme on arrive à la base de Registre !
    As-tu les droits de lecture de la base de Registre avec ton module IntraWeb ?
    Est-ce un IW autonome ou un module IIS ?
    avec IIS, il te faut surement des droits systèmes pour tes modules !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre éclairé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    539
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 539
    Par défaut
    JE suis en VCL et IW autonome.
    JE vais chercher du côté de CoInitialize, merci

  4. #4
    Membre éclairé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    539
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 539
    Par défaut
    Merci, c'était la bonne piste.
    Dans un premier temps, j'ai mis CoInitialize dans la section initialization du servercontroller mais finalement, j'ai dû le mettre dans l'évènement onCreate du TIWUserSession.

    En plus, ça m'a permis de résoudre un autre pb: si je commentais le code , un peu plus loin dbExpress me déclenchait une erreur le pilote 'MSSQL9' est inconnu

    Tout fonctionne. Encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 13
    Dernier message: 14/06/2004, 15h35
  2. [XSLT] Visualisation d'un fichier xml dans un jEditorPane
    Par Yannos94 dans le forum Format d'échange (XML, JSON...)
    Réponses: 16
    Dernier message: 09/01/2004, 17h50
  3. referencier un xml dans un autre
    Par the_special dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 29/11/2003, 22h28
  4. utilliser un autre fichier xml dans un xsl
    Par New Bee dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 14/04/2003, 10h55
  5. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo