VB.NET 2008 - Continuation du code lors de l'exécution d'une procédure stockée

Signaler
Messages postés
37
Date d'inscription
jeudi 22 mars 2007
Statut
Membre
Dernière intervention
10 décembre 2009
-
Messages postés
127
Date d'inscription
vendredi 27 juin 2008
Statut
Membre
Dernière intervention
6 septembre 2019
-
Bonjour à tous,<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>






J'ai un petit dilemme… Je développe un soft pour l’extraction de données SQL et création d’un fichier récapitulatif sous format Excel. Au lancement du logiciel, les combo-box se renseigne par rapport à des données de certaine table et j’ai une procédure stockée qui ce lance (à l’aide de LINQ).



La procédure stockée qui ce lance prend beaucoup de temps à s’exécuté et le formulaire ne s’affiche pas tant que ce dernier n’est pas terminé. Ce que j’aimerais faire et que je ne vois pas du tout comment c’est que la procédure stockée est lancé en premier et que mon code continu à s’exécuté et que le formulaire s’affiche. Après, je testerais tout les dix secondes si la procédure stockée est terminé.



Donc est-ce possible 



Merci ,



Gunshin82



Most people would die sooner than think; in fact, they do.
-Bertrand Russell-

4 réponses

Messages postés
127
Date d'inscription
vendredi 27 juin 2008
Statut
Membre
Dernière intervention
6 septembre 2019

Salut,

Pourquoi n'appellerais tu pas un thread pour lancer ta procédure. Ainis le reste du programme s'exécutera en parallèle de ta procédure. Et tu peux connaître la fin du thread donc la fin de ta procédure.

Imports System.Threading
sub form.load
gUploadingThread As Thread
gUploadingThread = New Thread(AddressOf Taprocedure)
gUploadingThread.Start()
end sub

sub Taprocedure
'.........
end sub

sub timer1.tick
If gUploadingThread.IsAlive Then exit sub
'................
end sub
Messages postés
37
Date d'inscription
jeudi 22 mars 2007
Statut
Membre
Dernière intervention
10 décembre 2009

Hi,



J'avoue que je suis un peu confus sur la façons que ceci fonctionne mais au moins, j'ai maintenant un nom à ce que je veux faire, ce qui m'aide beaucoup, ça va facilité mes recherches, Merci .

Sinon, par rapport à ce que tu as écris, je dois envoyé une valeur à ma procédure hors le Thread(AddressOf MaProcedure) ne le permets pas. et pour le timer1.tick j'ai tenté de trouver comment celui-ci est déclarer mais sans succès Visual Studio n'apprécis pas...

Entre temps, je continu mes recherches sur le net pour le Multithreading.

Merci,

Gunshin82





Most people would die sooner than think; in fact, they do.
-Bertrand Russell-
Messages postés
107
Date d'inscription
samedi 25 novembre 2000
Statut
Membre
Dernière intervention
4 mai 2013

Sinon tu peux chercher du côté du composant Backgroundworker, qui permet de gérer une tâche lourde de manière asynchrone, et de lui passer des paramètres
Messages postés
127
Date d'inscription
vendredi 27 juin 2008
Statut
Membre
Dernière intervention
6 septembre 2019

Salut,

Si tu veux envoyer une valeur à ta procédure, tu peux, même si ce n'est pas le plus propre appeler une sub intémédiaire avec ton thread qui elle appellera taprocédure avec une valeur....

En ce qui concerne le timer, la syntaxe que je t'ai mise est fausse. Il faut que tu ajoutes l'objet timer à ta form (design), double cliques dessus et l'évènement timer.tick sera mis automatiquement dans ton code.