Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DataModuleCreate wird aus TService nicht aufgerufen (https://www.delphipraxis.net/104089-datamodulecreate-wird-aus-tservice-nicht-aufgerufen.html)

FrankBrin 27. Nov 2007 10:25

Datenbank: MS SQL Express • Version: 2005 • Zugriff über: ADO

DataModuleCreate wird aus TService nicht aufgerufen
 
Hallo miteinander,
bin gerade dabei aus einer Desktop-Applikation eine Service-Applikation zu machen. Dabei stelle ich auch gleich von Delphi 7 auf 2007 um.
Läuft eigentlich alles prima, bis auf das Datenbankmodul. Im ServiceStart wird bei mir das Datenbankmodul mit

Application.CreateForm( TDatMan, FrmDatMan);

initialisiert. Normalerweise müsste dann die DataModuleCreate Prozedur des Moduls aufgerufen werden. Hier kommt die Anwendung nie hin. Vorher kommt bereits eine Fehlermeldung und der Service wird beendet.

Hat irgendjemand Erfahrungen mit dieser Situation.

Gruß Frank :wall:

shmia 27. Nov 2007 10:51

Re: DataModuleCreate wird aus TService nicht aufgerufen
 
Welche Fehlermeldung ?
Bitte lesen: http://www.chiark.greenend.org.uk/~s...m/bugs-de.html

FrankBrin 27. Nov 2007 11:05

Re: DataModuleCreate wird aus TService nicht aufgerufen
 
Hallo,
danke für den Hinweis mit der schlechten Fehlerbeschreibung. Die Meldung kann man aber nicht wirklich wiedergeben, da irgendetwas von dem Just-in-Time debugger geschwafelt wird. Ich denke mal, das mein System da nicht so richtig konfiguriert ist - EGAL.

Mittlerweile habe ich durch Zufall den Fehler beheben können.
Im Quellcode der Exe kommt folgender Hinweis:

>>>
program MBOJDFi;

uses ...
{$R *.RES}

begin
// Windows 2003 Server requires StartServiceCtrlDispatcher to be
// called before CoRegisterClassObject, which can be called indirectly
// by Application.Initialize. TServiceApplication.DelayInitialize allows
// Application.Initialize to be called from TService.Main (after
// StartServiceCtrlDispatcher has been called).
//
// Delayed initialization of the Application object may affect
// events which then occur prior to initialization, such as
// TService.OnCreate. It is only recommended if the ServiceApplication
// registers a class object with OLE and is intended for use with
// Windows 2003 Server.
// Application.DelayInitialize := True;
//
...
<<<
Nun hab ich einfach mal die Zeile

Application.DelayInitialize := True;

entkommentiert und siehe da - es läuft.

Warum ist mir absolut schleicherhaft, vor allen Dingen weils auf Win XP Prof und nicht auf Server 2003 läuft.

Gruß Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:02 Uhr.

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