<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><category>pcsoft.fr.windev</category><copyright>Copyright 2026, PC SOFT</copyright><lastBuildDate>26 Apr 2020 18:29:52 Z</lastBuildDate><pubDate>13 Sep 2012 19:42:20 Z</pubDate><description>Bonjour,&#13;
&#13;
je rencontre actuellement un soucis avec une de mes applications.&#13;
&#13;
Celle-ci doit désormais gérer des écritures dans deux bases de données SQL Server en parallèle.&#13;
Certains traitements sont effectués dans des transactions pour faciliter le roll back en cas d'erreurs.&#13;
Nous utilisons pour manipuler ces bases les fonctions SQL de Windev.&#13;
&#13;
J'ai cependant un problème lorsque je change de connexion, il semblerait que l'imbrication de transactions sur la même connexion ne soit pas bien prise en compte.&#13;
&#13;
En effet, j'ouvre une transaction "globale" sur ma 1ère connexion, j'en ouvre ensuite une autre sur cette même connexion et j'effectue des traitements.&#13;
Si ceux-ci se déroulent bien, je ferme ma seconde transaction (il m'en reste donc une ouverte de plus haut niveau)&#13;
&#13;
Je change ensuite de connexion et ouvre une transaction sur cette deuxième connexion pour effectuer des traitements sur la seconde base de données.&#13;
Si ces traitements échouent, j'annule ma transaction et je rebascule sur ma première connexion, sur laquelle j'annule ma transaction "globale".&#13;
Là, je me rends malheureusement compte que ma transaction "globale" a été validée et non annulée, les modifications dans la BDD de ma 1ère connexion ont été prises en compte.&#13;
&#13;
&#13;
&#13;
Pouvez-vous me dire si le changement de connexion valide toute transaction ouverte sur la précédente connexion ?&#13;
&#13;
&#13;
&#13;
Vous trouverez ci-après un protocole de reproduction du code (simplifié) expliquant les traitements que j'effectue dans mon application.&#13;
&#13;
&#13;
Cordialement.&#13;
&#13;
&#13;
&#13;
P.S. : Dsl pour l'indentation du code, mais la balise code ne me laisse pas présenter le code comme je veux.&#13;
&#13;
&#13;
Protocole de reproduction :&#13;
&#13;
[code]&#13;
&#13;
VaINT_ID_CONNEXION_1 est un entier = SQLConnecte(Mon_Serveur_1,Mon_User,Mon_Password,Ma_Base_De_Donnees_1,"SQL SERVER")&#13;
                &#13;
VaINT_ID_CONNEXION_2 est un entier = SQLConnecte(Mon_Serveur_2,Mon_User,Mon_Password,Ma_Base_De_Donnees_2,"SQL SERVER")&#13;
                &#13;
// Je bascule sur ma 1ère connexion&#13;
SQLChangeConnexion(VaINT_ID_CONNEXION_1)&#13;
&#13;
// J'ouvre une transaction sur la connexion VaINT_ID_CONNEXION_1&#13;
SQLTransaction(sqlDébut)&#13;
&#13;
// Je teste la valeur de retour de ma 1ère procédure&#13;
SI(MaPROCEDURE_1() = Vrai) ALORS&#13;
	// Si Ma_Procedure_1 renvoie Vrai, je rends active ma 2nde connexion&#13;
	SQLChangeConnexion(VaINT_ID_CONNEXION_2)&#13;
	// Je teste la valeur de retour de ma 2nde procédure&#13;
	SI(MaPROCEDURE_2() = Vrai) ALORS&#13;
		// Si Ma_Procedure_2 renvoie Vrai, je bascule sur ma 1ère connexion&#13;
		SQLChangeConnexion(VaINT_ID_CONNEXION_1)&#13;
		// Puis je termine ma transaction sur la connexion VaINT_ID_CONNEXION_1 pour valider mes modifications sur Ma_Base_De_Donnees_1&#13;
		SQLTransaction(sqlFin)&#13;
		RENVOYER Vrai&#13;
	SINON&#13;
		// Si Ma_Procedure_2 renvoie Faux, je bascule sur ma 1ère connexion&#13;
		SQLChangeConnexion(VaINT_ID_CONNEXION_1)&#13;
		// Puis j'annule ma transaction sur la connexion VaINT_ID_CONNEXION_1 pour annuler mes modifications sur Ma_Base_De_Donnees_1&#13;
		SQLTransaction(sqlAnnule)&#13;
		RENVOYER Faux&#13;
	FIN&#13;
SINON&#13;
	// Si Ma_Procedure_1 renvoie Faux, j'annule ma transaction sur la connexion VaINT_ID_CONNEXION_1 pour annuler mes modifications sur Ma_Base_De_Donnees_1&#13;
	SQLTransaction(sqlAnnule)&#13;
	RENVOYER Faux&#13;
FIN&#13;
&#13;
PROCEDURE MaPROCEDURE_1()&#13;
	// J'ouvre une transaction sur la connexion VaINT_ID_CONNEXION_1&#13;
	SQLTransaction(sqlDébut)&#13;
	// Je teste l'exécution de Ma_Requete_1&#13;
	SI(SQLExec("Texte de ma requête",Ma_Requete_1) = Vrai) ALORS&#13;
		SI(Mon_Traitement() = Vrai)ALORS&#13;
			// Je ferme ma transaction sur la connexion VaINT_ID_CONNEXION_1&#13;
			SQLTransaction(sqlFin)&#13;
			RENVOYER Vrai&#13;
		SINON&#13;
			// J'annule ma transaction sur la connexion VaINT_ID_CONNEXION_1&#13;
			SQLTransaction(sqlAnnule)&#13;
			RENVOYER Faux&#13;
		FIN&#13;
	SINON&#13;
		// J'annule ma transaction sur la connexion VaINT_ID_CONNEXION_1&#13;
		SQLTransaction(sqlAnnule)&#13;
		RENVOYER Faux&#13;
	FIN&#13;
FIN&#13;
&#13;
PROCEDURE MaPROCEDURE_2()&#13;
	// J'ouvre une transaction sur la connexion VaINT_ID_CONNEXION_2&#13;
	SQLTransaction(sqlDébut)&#13;
	// Je teste l'exécution de Ma_Requete_2&#13;
	SI(SQLExec("Texte de ma requête",Ma_Requete_2) = Vrai) ALORS&#13;
		SI(Mon_Traitement() = Vrai)ALORS&#13;
			// Je ferme ma transaction sur la connexion VaINT_ID_CONNEXION_2&#13;
			SQLTransaction(sqlFin)&#13;
			RENVOYER Vrai&#13;
		SINON&#13;
			// J'annule ma transaction sur la connexion VaINT_ID_CONNEXION_2&#13;
			SQLTransaction(sqlAnnule)&#13;
			RENVOYER Faux&#13;
		FIN&#13;
	SINON&#13;
		// J'annule ma transaction sur la connexion VaINT_ID_CONNEXION_2&#13;
		SQLTransaction(sqlAnnule)&#13;
		RENVOYER Faux&#13;
	FIN&#13;
FIN&#13;
&#13;
[/code]</description><ttl>30</ttl><generator>WEBDEV</generator><language>fr_FR</language><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions/read.awp</link><title>[WD17] Transactions SQL avec plusieurs connexions</title><managingEditor>moderateur@pcsoft.fr (El moderador)</managingEditor><webMaster>webmaster@pcsoft.fr (El webmaster)</webMaster><item><author>daniel.gueguen</author><category>pcsoft.fr.windev</category><comments>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions-239051/read.awp</comments><pubDate>26 Apr 2020 18:29:52 Z</pubDate><description>Hello,&#13;
MARS = Multiple Active Result Sets&#13;
Ce serait intéressant de savoir ce qui a été exécuté comme requête SQL pour savoir p…</description><guid isPermaLink="true">https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions-239051/read.awp</guid><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions-239051/read.awp</link><source url="https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions/read.awp">[WD17] Transactions SQL avec plusieurs connexions</source><title>Re: [WD17] Transactions SQL avec plusieurs connexions</title></item><item><author>cyril</author><category>pcsoft.fr.windev</category><comments>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions-239045/read.awp</comments><pubDate>26 Apr 2020 09:21:45 Z</pubDate><description>Bonjour,&#13;
&#13;
Je suis en train de migrer l'une de mes applications sur SQL Server et je rencontre le même problème : "Une transact…</description><guid isPermaLink="true">https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions-239045/read.awp</guid><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions-239045/read.awp</link><source url="https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions/read.awp">[WD17] Transactions SQL avec plusieurs connexions</source><title>Re: [WD17] Transactions SQL avec plusieurs connexions</title></item><item><author>m.neel</author><category>pcsoft.fr.windev</category><comments>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions-153074/read.awp</comments><pubDate>14 Sep 2012 17:55:09 Z</pubDate><description>Je rencontre à nouveau un problème. J'ai tenté de gérer les transactions en utilisant des SQLExec("begin transaction " + Nom_de_…</description><guid isPermaLink="true">https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions-153074/read.awp</guid><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions-153074/read.awp</link><source url="https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions/read.awp">[WD17] Transactions SQL avec plusieurs connexions</source><title>Re: [WD17] Transactions SQL avec plusieurs connexions</title></item><item><author>m.neel</author><category>pcsoft.fr.windev</category><comments>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions-153066/read.awp</comments><pubDate>14 Sep 2012 13:01:48 Z</pubDate><description>Daniel a écrit dans le message de news &lt;113998d2c7f23253ea9c46a79d2a7e97@news.pcsoft&gt; :&#13;
&gt; Bonjour,&#13;
&gt; &#13;
&gt; Une transaction n'aff…</description><guid isPermaLink="true">https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions-153066/read.awp</guid><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions-153066/read.awp</link><source url="https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions/read.awp">[WD17] Transactions SQL avec plusieurs connexions</source><title>Re: [WD17] Transactions SQL avec plusieurs connexions</title></item><item><author>daniel.gueguen</author><category>pcsoft.fr.windev</category><comments>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions-153052/read.awp</comments><pubDate>13 Sep 2012 22:57:41 Z</pubDate><description>Bonjour,&#13;
&#13;
Une transaction n'affecte pas une autre connexion que celle qui l'a ouverte. Cela fonctionne très bien avec SQL Serv…</description><guid isPermaLink="true">https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions-153052/read.awp</guid><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions-153052/read.awp</link><source url="https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/153045-wd17-transactions-sql-avec-plusieurs-connexions/read.awp">[WD17] Transactions SQL avec plusieurs connexions</source><title>Re: [WD17] Transactions SQL avec plusieurs connexions</title></item></channel></rss>
