Cr�er un service windows avec C++Builder10
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.
Code:
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() ; |
Mon probl�me je n'arrive pas � ex�cuter mon service apr�s son l'installation.
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:
Code:
1 2 3 4
| void __fastcall TService1::ServiceStart(TService *Sender, bool &Started)
{
Database1->Connected=true;
} |
Probl�me (Message d'erreur le service � besoin d'autre service ou programme pour fonctionner.
-Autre Test mais toujours les m�mes probl�me:
Code:
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;
}
} |
J'ai essay� d'utiliser un Thread en ajoutant un ObjetThread � mon projet mais non :cry: :
Code:
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;
}
} |
Code:
1 2 3 4 5 6 7 8
| void __fastcall TService1::ServiceExecute(TService *Sender)
{
while(!Terminated)
{
ServiceThread->ProcessRequests(true);
MyThread1->Resume();
}
} |
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.
Cordialement KISEKI.