Bonjour,
Donc j'utilise l'outil de builder pour cr�er un service "Service Application".
Le but de mon service est de transf�rer les donn�es d'une table vers une autre, j'ai ainsi du rajouter un TDatabase et TQuery dans mon Service Application.
Voici le code du transfert il marche correctement dans une fiche vcl avec un TTimer.
Mon probl�me je n'arrive pas � ex�cuter mon service apr�s son l'installation.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9 Query1->SQL->Clear(); Query1->SQL->Add( "INSERT INTO Tab2(Nom1) SELECT Nom from Tab where validation_t = 1"); Query1->ExecSQL(); //supprime Query1->SQL->Clear(); Query1->SQL->Add("Delete FROM Tab where validation_t = 1"); Query1->ExecSQL() ;
Test effectuer:
-Si ma Database est directement connect� dans les propri�t�s, le service ne veut pas s'ex�cuter (Message d'erreur le programme � prit trop temps � s'ex�cuter).
-Si ma Database n'est pas directement connect� mais je veux la connecter lors du d�marrage du service exemple:
Probl�me (Message d'erreur le service � besoin d'autre service ou programme pour fonctionner.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4 void __fastcall TService1::ServiceStart(TService *Sender, bool &Started) { Database1->Connected=true; }
-Autre Test mais toujours les m�mes probl�me:
J'ai essay� d'utiliser un Thread en ajoutant un ObjetThread � mon projet mais non
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 void __fastcall TService1::ServiceExecute(TService *Sender) { while(!Terminated) { Service1->Database1->Connected=true; Service1->Query1->SQL->Clear(); Service1->Query1->SQL->Add( "INSERT INTO Tab2(Nom1) SELECT Nom from Tab where validation_t = 1"); Service1->Query1->ExecSQL(); //supprime Service1->Query1->SQL->Clear(); Service1->Query1->SQL->Add("Delete FROM Tab where validation_t = 1"); Service1->Query1->ExecSQL() ; Service1->Database1->Connected=false; } }:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 void __fastcall MyThread::Execute() { while(!Terminated) { Service1->Database1->Connected=true; Service1->Query1->SQL->Clear(); Service1->Query1->SQL->Add( "INSERT INTO Tab2(Nom1) SELECT Nom from Tab where validation_t = 1"); Service1->Query1->ExecSQL(); //supprime Service1->Query1->SQL->Clear(); Service1->Query1->SQL->Add("Delete FROM Tab where validation_t = 1"); Service1->Query1->ExecSQL() ; Service1->Database1->Connected=false; } }Donc � ce jour je suis un peu perdu j'ai regard� sur internet mais en vain, j'ai utilis� un tutoriel voici le lien http://www.kbcafe.com/articles/TService.pdf j'ai du rater quelque chose mais je n'y arrive pas donc si quelqu'un peu me mettre sur la voie je vous en remercie.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 void __fastcall TService1::ServiceExecute(TService *Sender) { while(!Terminated) { ServiceThread->ProcessRequests(true); MyThread1->Resume(); } }
Cordialement KISEKI.
Partager