Bonjour,
Je me pose des questions concernant la gestion des
transaction avec ADO .Net et une base SQL Server. Que
conseillez-vous pour effectuer des transactions imbriqu=E9s
avec ADO .Net?
Je m'explique, j'ai du code qui fait un ensemble
d'op=E9rations de mise =E0 jour de stock sur une s=E9ries
d'article et qui est donc compos=E9 d'une boucle appellant
une m=E9thode de mise =E0 jour du stock. Dans cette m=E9thode je
souhaiterai d=E9marrer une transaction et la cloturer en fin
de m=E9thode si tout s'est bien pass=E9. Dans le code appellant
je souhaiterai d=E9marrer une transaction globale et la
valider si tous mes appels =E0 ma m=E9thode se sont bien pass=E9.
Les difficult=E9s que je rencontre sont du au fait que
lorsque l'on fait un .Fill() la connexion est
automatiquement ferm=E9e et du coup les transactions
inutilisables. Actuellement j'utilise les donc, plutot que
l'objet connection d'ADO .Net, les transactions nomm=E9es de
SQL Server via des "BEGIN TRANSACTION MATRANSACTION"
ex=E9cut=E9e via l'objet DataCommand d'ADO. Mais je me pose
tout de m=EAme une question : est-ce que cela est correct si
ma connexion est ferm=E9e par un .Fill alors qu'aucun COMMIT
ou ROLLBACK n'est effectu=E9. Que me conseillez-vous et ou
puis-je trouver une doc vraiment explicite sur la gestion
des transactions imbriqu=E9es avec ADO .NET ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Laurent GEFFROY
Pourquoi ne passerais-tu pas ton objet de transaction en paramètre de ta méthode. Utilise éventuellement les throw pour renvoyer les erreurs à la methode appelante.
"Stéphane ANDRE" a écrit :
Bonjour, Je me pose des questions concernant la gestion des transaction avec ADO .Net et une base SQL Server. Que conseillez-vous pour effectuer des transactions imbriqués avec ADO .Net? Je m'explique, j'ai du code qui fait un ensemble d'opérations de mise à jour de stock sur une séries d'article et qui est donc composé d'une boucle appellant une méthode de mise à jour du stock. Dans cette méthode je souhaiterai démarrer une transaction et la cloturer en fin de méthode si tout s'est bien passé. Dans le code appellant je souhaiterai démarrer une transaction globale et la valider si tous mes appels à ma méthode se sont bien passé. Les difficultés que je rencontre sont du au fait que lorsque l'on fait un .Fill() la connexion est automatiquement fermée et du coup les transactions inutilisables. Actuellement j'utilise les donc, plutot que l'objet connection d'ADO .Net, les transactions nommées de SQL Server via des "BEGIN TRANSACTION MATRANSACTION" exécutée via l'objet DataCommand d'ADO. Mais je me pose tout de même une question : est-ce que cela est correct si ma connexion est fermée par un .Fill alors qu'aucun COMMIT ou ROLLBACK n'est effectué. Que me conseillez-vous et ou puis-je trouver une doc vraiment explicite sur la gestion des transactions imbriquées avec ADO .NET ?
Merci d'avance.
Pourquoi ne passerais-tu pas ton objet de transaction en paramètre de ta
méthode.
Utilise éventuellement les throw pour renvoyer les erreurs à la methode
appelante.
"Stéphane ANDRE" a écrit :
Bonjour,
Je me pose des questions concernant la gestion des
transaction avec ADO .Net et une base SQL Server. Que
conseillez-vous pour effectuer des transactions imbriqués
avec ADO .Net?
Je m'explique, j'ai du code qui fait un ensemble
d'opérations de mise à jour de stock sur une séries
d'article et qui est donc composé d'une boucle appellant
une méthode de mise à jour du stock. Dans cette méthode je
souhaiterai démarrer une transaction et la cloturer en fin
de méthode si tout s'est bien passé. Dans le code appellant
je souhaiterai démarrer une transaction globale et la
valider si tous mes appels à ma méthode se sont bien passé.
Les difficultés que je rencontre sont du au fait que
lorsque l'on fait un .Fill() la connexion est
automatiquement fermée et du coup les transactions
inutilisables. Actuellement j'utilise les donc, plutot que
l'objet connection d'ADO .Net, les transactions nommées de
SQL Server via des "BEGIN TRANSACTION MATRANSACTION"
exécutée via l'objet DataCommand d'ADO. Mais je me pose
tout de même une question : est-ce que cela est correct si
ma connexion est fermée par un .Fill alors qu'aucun COMMIT
ou ROLLBACK n'est effectué. Que me conseillez-vous et ou
puis-je trouver une doc vraiment explicite sur la gestion
des transactions imbriquées avec ADO .NET ?
Pourquoi ne passerais-tu pas ton objet de transaction en paramètre de ta méthode. Utilise éventuellement les throw pour renvoyer les erreurs à la methode appelante.
"Stéphane ANDRE" a écrit :
Bonjour, Je me pose des questions concernant la gestion des transaction avec ADO .Net et une base SQL Server. Que conseillez-vous pour effectuer des transactions imbriqués avec ADO .Net? Je m'explique, j'ai du code qui fait un ensemble d'opérations de mise à jour de stock sur une séries d'article et qui est donc composé d'une boucle appellant une méthode de mise à jour du stock. Dans cette méthode je souhaiterai démarrer une transaction et la cloturer en fin de méthode si tout s'est bien passé. Dans le code appellant je souhaiterai démarrer une transaction globale et la valider si tous mes appels à ma méthode se sont bien passé. Les difficultés que je rencontre sont du au fait que lorsque l'on fait un .Fill() la connexion est automatiquement fermée et du coup les transactions inutilisables. Actuellement j'utilise les donc, plutot que l'objet connection d'ADO .Net, les transactions nommées de SQL Server via des "BEGIN TRANSACTION MATRANSACTION" exécutée via l'objet DataCommand d'ADO. Mais je me pose tout de même une question : est-ce que cela est correct si ma connexion est fermée par un .Fill alors qu'aucun COMMIT ou ROLLBACK n'est effectué. Que me conseillez-vous et ou puis-je trouver une doc vraiment explicite sur la gestion des transactions imbriquées avec ADO .NET ?
Merci d'avance.
Stéphane ANDRE
J'ai essayé, cela ne solutionne pas mon problème car même si je passe mon objet transaction la connexion se fermant suite au fill dans ma méthode j'ai le même pb.
-----Message d'origine----- Pourquoi ne passerais-tu pas ton objet de transaction en
Bonjour, Je me pose des questions concernant la gestion des transaction avec ADO .Net et une base SQL Server. Que conseillez-vous pour effectuer des transactions
J'ai essayé, cela ne solutionne pas mon problème car même
si je passe mon objet transaction la connexion se fermant
suite au fill dans ma méthode j'ai le même pb.
-----Message d'origine-----
Pourquoi ne passerais-tu pas ton objet de transaction en
Bonjour,
Je me pose des questions concernant la gestion des
transaction avec ADO .Net et une base SQL Server. Que
conseillez-vous pour effectuer des transactions
J'ai essayé, cela ne solutionne pas mon problème car même si je passe mon objet transaction la connexion se fermant suite au fill dans ma méthode j'ai le même pb.
-----Message d'origine----- Pourquoi ne passerais-tu pas ton objet de transaction en
Bonjour, Je me pose des questions concernant la gestion des transaction avec ADO .Net et une base SQL Server. Que conseillez-vous pour effectuer des transactions
Vous pouvez utiliser les transactions automatiques dont la prise en charge est assurée depuis bien longtemps par Windows (par l'intermédiaire du service MSDTC). C'est possible car SQL Server le supporte aussi. Le choix d'implémentation final dépend ensuite de la plateforme exacte.
Si vous êtes sous Windows 2000 ou Windows XP, vous pouvez utiliser les classes .NET ServicedComponent. Dans ce cas, vos objets pourront utiliser des transactions automatiques proposées par COM + 1.0
Quelques exemples ici: http://progtutorials.tripod.com/DotNetTransaction.htm http://www.codersource.net/csharp_distributed_transactions.aspx
Si vous êtes sous Windows Server 2003 ou Windows XP SP2 (le SP2 est important), je vous conseille d'utiliser la technologie SWC (Services Without Components), apportée par COM + 1.5. Elle est accessible avec le .NET Framework 1.1 par les classes ServiceConfig, ServiceDomain, etc...
Le gros avantage apporté par COM + 1.5 est que vous n'avez pas besoin de "trafiquer" vos classes .NET, ni d'enregistrer des applications COM +. L'impact est donc faible, mais le gain important. plus d'infos ici: http://weblogs.asp.net/dgonzalez/archive/2003/08/25/25274.aspx http://msdn.microsoft.com/msdnmag/issues/02/04/COMXP/
Si vous ne souhaitez pas utiliser les transactions automatiques, alors il faut soit passer par SQL comme vous le faites, soir passer un objet transaction à chaque méthode, mais c'est nettement moins pratique.
Simon www.softfluent.com
"Stéphane ANDRE" a écrit dans le message de news: 074801c56c08$a0dd6810$ J'ai essayé, cela ne solutionne pas mon problème car même si je passe mon objet transaction la connexion se fermant suite au fill dans ma méthode j'ai le même pb.
-----Message d'origine----- Pourquoi ne passerais-tu pas ton objet de transaction en
Bonjour, Je me pose des questions concernant la gestion des transaction avec ADO .Net et une base SQL Server. Que conseillez-vous pour effectuer des transactions
Vous pouvez utiliser les transactions automatiques dont la prise en charge
est assurée depuis bien longtemps par Windows (par l'intermédiaire du
service MSDTC). C'est possible car SQL Server le supporte aussi. Le choix
d'implémentation final dépend ensuite de la plateforme exacte.
Si vous êtes sous Windows 2000 ou Windows XP, vous pouvez utiliser les
classes .NET ServicedComponent. Dans ce cas, vos objets pourront utiliser
des transactions automatiques proposées par COM + 1.0
Quelques exemples ici:
http://progtutorials.tripod.com/DotNetTransaction.htm
http://www.codersource.net/csharp_distributed_transactions.aspx
Si vous êtes sous Windows Server 2003 ou Windows XP SP2 (le SP2 est
important), je vous conseille d'utiliser la technologie SWC (Services
Without Components), apportée par COM + 1.5. Elle est accessible avec le
.NET Framework 1.1 par les classes ServiceConfig, ServiceDomain, etc...
Le gros avantage apporté par COM + 1.5 est que vous n'avez pas besoin de
"trafiquer" vos classes .NET, ni d'enregistrer des applications COM +.
L'impact est donc faible, mais le gain important.
plus d'infos ici:
http://weblogs.asp.net/dgonzalez/archive/2003/08/25/25274.aspx
http://msdn.microsoft.com/msdnmag/issues/02/04/COMXP/
Si vous ne souhaitez pas utiliser les transactions automatiques, alors il
faut soit passer par SQL comme vous le faites, soir passer un objet
transaction à chaque méthode, mais c'est nettement moins pratique.
Simon
www.softfluent.com
"Stéphane ANDRE" <anonymous@discussions.microsoft.com> a écrit dans le
message de news: 074801c56c08$a0dd6810$a601280a@phx.gbl...
J'ai essayé, cela ne solutionne pas mon problème car même
si je passe mon objet transaction la connexion se fermant
suite au fill dans ma méthode j'ai le même pb.
-----Message d'origine-----
Pourquoi ne passerais-tu pas ton objet de transaction en
Bonjour,
Je me pose des questions concernant la gestion des
transaction avec ADO .Net et une base SQL Server. Que
conseillez-vous pour effectuer des transactions
Vous pouvez utiliser les transactions automatiques dont la prise en charge est assurée depuis bien longtemps par Windows (par l'intermédiaire du service MSDTC). C'est possible car SQL Server le supporte aussi. Le choix d'implémentation final dépend ensuite de la plateforme exacte.
Si vous êtes sous Windows 2000 ou Windows XP, vous pouvez utiliser les classes .NET ServicedComponent. Dans ce cas, vos objets pourront utiliser des transactions automatiques proposées par COM + 1.0
Quelques exemples ici: http://progtutorials.tripod.com/DotNetTransaction.htm http://www.codersource.net/csharp_distributed_transactions.aspx
Si vous êtes sous Windows Server 2003 ou Windows XP SP2 (le SP2 est important), je vous conseille d'utiliser la technologie SWC (Services Without Components), apportée par COM + 1.5. Elle est accessible avec le .NET Framework 1.1 par les classes ServiceConfig, ServiceDomain, etc...
Le gros avantage apporté par COM + 1.5 est que vous n'avez pas besoin de "trafiquer" vos classes .NET, ni d'enregistrer des applications COM +. L'impact est donc faible, mais le gain important. plus d'infos ici: http://weblogs.asp.net/dgonzalez/archive/2003/08/25/25274.aspx http://msdn.microsoft.com/msdnmag/issues/02/04/COMXP/
Si vous ne souhaitez pas utiliser les transactions automatiques, alors il faut soit passer par SQL comme vous le faites, soir passer un objet transaction à chaque méthode, mais c'est nettement moins pratique.
Simon www.softfluent.com
"Stéphane ANDRE" a écrit dans le message de news: 074801c56c08$a0dd6810$ J'ai essayé, cela ne solutionne pas mon problème car même si je passe mon objet transaction la connexion se fermant suite au fill dans ma méthode j'ai le même pb.
-----Message d'origine----- Pourquoi ne passerais-tu pas ton objet de transaction en
Bonjour, Je me pose des questions concernant la gestion des transaction avec ADO .Net et une base SQL Server. Que conseillez-vous pour effectuer des transactions