Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Dienst / Service und CreateOleObject('Microsoft.XMLDOM') (https://www.delphipraxis.net/81796-dienst-service-und-createoleobject-microsoft-xmldom.html)

lorrey 4. Dez 2006 09:40


Dienst / Service und CreateOleObject('Microsoft.XMLDOM')
 
Hallo zusammen,

ich würde gerne über einen Windows System Dienst ein XML File erstellen - leider bleibt er schon beim CreateOleObject hängen:

Delphi-Quellcode:
doc := CreateOleObject('Microsoft.XMLDOM') as IXMLDomDocument;

Ich hatte die Tage schon mal ein ähnliches Problem (http://www.delphipraxis.net/internal...ct.php?t=97478)
Leider helfen die Lösungen von dort hier nicht weiter...

Delphi-Quellcode:
  OleInitialize(nil);
  Application.Initialize;
In einer normalen Application funzt der Code einwandfrei - was muss man für einen Dienst ergänzen damit man das OLEObject erzeugen kann?!?

Bin für jeden Tipp dankbar!!!

mkinzler 4. Dez 2006 09:57

Re: Dienst / Service und CreateOleObject('Microsoft.XMLDOM')
 
-Welchen Fehler meldet er?
-Schon mit einem anderern XML-Parser versucht?

Neuromancer 4. Dez 2006 09:58

Re: Dienst / Service und CreateOleObject('Microsoft.XMLDOM')
 
Hallo lorrey,

Zitat:

Delphi-Quellcode:
  OleInitialize(nil);
  Application.Initialize;

Hast du es schon mal mit CoInitialize statt mit OLEInitialize probiert?

Gruß

lorrey 4. Dez 2006 10:33

Re: Dienst / Service und CreateOleObject('Microsoft.XMLDOM')
 
Zitat:

Zitat von Neuromancer
Hallo lorrey,

Zitat:

Delphi-Quellcode:
  OleInitialize(nil);
  Application.Initialize;

Hast du es schon mal mit CoInitialize statt mit OLEInitialize probiert?

Gruß

ja hab ich - leider ohne erfolg!
muss man vielleicht eine bestimmte reihenfolge einhalten?

Neuromancer 4. Dez 2006 10:44

Re: Dienst / Service und CreateOleObject('Microsoft.XMLDOM')
 
Zitat:

Zitat von lorrey
muss man vielleicht eine bestimmte reihenfolge einhalten?

Nicht dass ich wüsste. Normalerweise müsste auch der Aufruf von CoInitialize(Ex) ohne OLEInitialize reichen.

Andere Frage: Warum late binding? Hast du schon mal versucht, die Typbibliothek zu importieren und das Objekt anschließend über die ClassFactory zu erstellen?
Und eine ganz dumme Frage: Auf der Maschine, auf welcher der Parser laufen soll, sind aber schon die MS XML Core Services installiert, oder? ;-)
Noch eine Möglichkeit: Probier mal mit "msxml" statt mit "Microsoft.XMLDOM" zu erzeugen.

Mehr Ideen habe ich im moment nicht.

Gruß

generic 4. Dez 2006 10:45

Re: Dienst / Service und CreateOleObject('Microsoft.XMLDOM')
 
du must das com in den workerthread initalisieren.

dienste sind threads!

lorrey 4. Dez 2006 11:32

Re: Dienst / Service und CreateOleObject('Microsoft.XMLDOM')
 
hmmm

also mit es klappt mit beiden bei meine ADO DB Connection - nur beim XML net?
Delphi-Quellcode:
CoInitialize(nil);

ODER

CoInitializeEx(nil, COINIT_APARTMENTTHREADED);
Ist doch vom Prinzip her ähnlich oder bin ich jetzt ganz verpeilt?!?

Auch der Einsatz von 'msxml' ändert leider nichts.

Ich mach die Initialisierung in der 'ServiceExecute' - wie gesagt dem ADO reicht das, ohne geht auch er nicht... nur die XML Sache will nicht...

Mache ich irgendwas Grundlegend falsch?!?

mkinzler 4. Dez 2006 11:40

Re: Dienst / Service und CreateOleObject('Microsoft.XMLDOM')
 
Bist du unbedingt auf diesen XML-Parser angewiesen oder tuts auch eine anderer?

lorrey 4. Dez 2006 11:50

Re: Dienst / Service und CreateOleObject('Microsoft.XMLDOM')
 
Das ist mir völlig egal welcher - bin auf diesen über das Tutorial hier gekommen:
http://delphi.about.com/library/bluc/text/uc050601a.htm

Der funtz auch super, nur in meinem Dienst bekomme ich ihn nicht zu laufen!
Aber das muss doch irgendwie gehen, oder?

Falls es Alternativen gibt, die in Diensten laufen - als her damit ;-)
Mein Ziel ist es eine DB Tabelle in ein XML File zu exportieren...

lorrey 4. Dez 2006 14:37

Re: Dienst / Service und CreateOleObject('Microsoft.XMLDOM')
 
Falls es igrendwie hilft -> die Ausgabe von
Delphi-Quellcode:
 except
   on e:Exception do
     Showmessage(e.message);
bringt mir eine Zugriffverletzung... !?!
Wo kommt die denn her?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:45 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz