begin process at 2012 02 09 02:10:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Base de données

 > 

Oracle

 > 

TransactionScope et Oracle


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

TransactionScope et Oracle

vendredi 15 décembre 2006 à 18:22:05 | TransactionScope et Oracle

keskispas

Bonjour tout le monde !
J'essaye de tester la prise en charge des transactions en C# sous Oracle.
Le problème c'est ma transaction, même volontairement interrompue, n'est pas annulée dans la base de données !
Peut être que je n'utilise pas ce qu'il faut pour l'annuler.

Par exemple :
...
TransactionScope ts = new TransactionScope();
using (ts)
{
 try
 {
   ... [Mise à jour de la base] ...
   throw new Exception("Mon exception");
 }
 catch(Exception ex)
 {
   ts.Dispose(); // Rollback !
  }
}    
...

En sortant de là, les données sont dans la base au lieu d'être "rollbackées" !
Il me semble que sous SQL Server 2005, ce code passe sans problème.
Quelqu'un peut m'aider ?

Merci !

[b]KesKisPas[/b]
samedi 16 décembre 2006 à 00:23:14 | Re : TransactionScope et Oracle

coq

Administrateur CodeS-SourceS
Salut,

Et si tu spécifies explicitement la transaction à l'initilisation du TransactionScope ?
Il me semble qu'il y a des cas où on se trouve en "AutoCommit" au lieu d'un "AutoRollback" escompté.



/*
coq
MVP Visual C#
CoqBlog
*/
lundi 18 décembre 2006 à 10:06:30 | Re : TransactionScope et Oracle

keskispas

Ah...

Je t'avouerai que je n'ai pas compris ta réponse.

Tu peux m'éclairer davantage ?

Merci .

[b]KesKisPas[/b]
lundi 18 décembre 2006 à 18:34:47 | Re : TransactionScope et Oracle

coq

Administrateur CodeS-SourceS
En fait je parlais d'essayer d'utiliser une des surcharges du constructeur de la classe TransactionScope qui permettent de spécifier la transaction à utiliser :
- TransactionScope, constructeur (Transaction)
- TransactionScope, constructeur (Transaction, TimeSpan)
- TransactionScope, constructeur (Transaction, TimeSpan, EnterpriseServicesInteropOption)


/*
coq
MVP Visual C#
CoqBlog
*/
mardi 19 décembre 2006 à 14:25:32 | Re : TransactionScope et Oracle

keskispas

D'accord !

En fait, j'étais partie dans ce sens mais je ne trouve pas encore de solution.

Je n'ai qu'une seule transaction dans mon programme, et c'est celle là.
A part ça, mes opérations sur les bases sont effectuées par des DataSets...

Pour tester, j'ai ajouté dans ces opérations un DataSet sur une base SQL Server, et en cas de RollBack, seule les modifs sur SQL Server sont annulées, les modifs sur Oracle, elles, sont validées malgré le RollBack...

Je cherche toujours...

KesKisPas
mardi 19 décembre 2006 à 15:08:09 | Re : TransactionScope et Oracle

coq

Administrateur CodeS-SourceS
Ok, tiens nous au courant alors ^^



/*
coq
MVP Visual C#
CoqBlog
*/
mardi 19 décembre 2006 à 18:08:50 | Re : TransactionScope et Oracle

keskispas

Je crois avoir trouvé la réponse, elle se situe dans la chaine de connexion !

Si la propriété Enlist est à 'true', les transactions sont prises en compte
Sinon, elles sont "ignorées".
Après quelques essais, on dirait que ça vient réellement de là.

A lire la définition, ça "paraît" logique, mais je n'avais pas cherché par là :
[ Lien ]

Voilà !

Si quelqu'un a davantage de précision, je suis preneur, merci.

[b]KesKisPas[/b]
mardi 19 décembre 2006 à 18:19:25 | Re : TransactionScope et Oracle

coq

Administrateur CodeS-SourceS
Bon à savoir.
Si le provider Oracle intégré te pose problème (enfin là ça doit être global), tu as peut être intérêt à regarder du côté de celui fourni par Oracle.



/*
coq
MVP Visual C#
CoqBlog
*/
mercredi 20 décembre 2006 à 09:24:03 | Re : TransactionScope et Oracle

keskispas

L'ODPNet ? C'est ça ?

[b]KesKisPas[/b]
mercredi 20 décembre 2006 à 10:32:53 | Re : TransactionScope et Oracle

keskispas

Je regarderai du côté d'ODP.Net parceque je trouve un comportement bizarre avec le serveur Web de Dév de VS2005...

Si je ne détruis pas le serveur entre 2 tests, ma transaction reste bloquée indéfiniment. Donc, quand je testerais sur un vrai IIS, je confirmerai.

Merci en tout cas !


[b]KesKisPas[/b]

1 2

Cette discussion est classée dans : base, oracle, exception, ts, transactionscope


Répondre à ce message

Sujets en rapport avec ce message

Oracle, C#, Provider, etc ... [ par EmmaColberti ] Bonjour,J'expose mon problème, peut-être pourrez vous m'aider.Je compte me connecter à une base Oracle depuis une application en C#.Donc après quelque oracle et Win CE [ par darkbouba666 ] Bonjour a tous,je suis actuellement en stage, et j'ai comme projet de connecter un Pocket pc (en fait un scanner a code bare equiper de Win CE et d'un ODBC, OleDb, ... (°_°)agheu??? + Pb connexion BD Oracle... [ par sphaxslayer ] Bonjour tout le monde...au risque de paraître stupide, je voudrais vous poser la question suivante:mais que sont ODBC et OleDb ... ? Ormis que ce sont Erreur ORA-00020 [ par Caro2005 ] Bonjour,Je rencontre un souci avec une appli c# qui se connecte à une base de données Oracle. Cette application effectue des select, update et insert Inserer un Object de type BLOB ou CLOB dans une base Oracle [ par oh_biba ] Bonjour, je suis relativement perdu quant a ce probleme : Je souhaite stocker des fichiers dans une base Oracle depuis appli web (C#). Comment faire, Importer des données d'un fichier xls vers une base Oracle en C# [ par racecoco ] Bonjour,Dans une application Web, je dois récupérer des données provenant d'un fichier xls et les insérer dans une base de donnée Oracle.En fait dans Connexion a une base oracle [ par akuma00 ] Je crée une application qui se connecte à une base Oracle. Mes classes de persistances sont régie par un modèle crud : Une classe Singleton de connexi Migration Base Access vers Oracle (C# ou VB net) [ par retsa ] Bonjour à tous. Je suis nouveau sur le développement net, J'utilise Visual Studio NET et je vais faire une importation ou migration d'une base de do Client Oracle [ par RegVB ] Bonjour à tous, Je cherche à me connecter à une base Oracle. Pour cela j'utilise la class ConnexionOracle (http://www.csharpfr.com/code.aspx?id=25671 Base de données sous dot net [ par lm86 ] Bonjour.J'aimerais savoir si il est possible de contacter une base de données oracle sous dot net sans avoir installer de client oracle.Merci d'avance


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,276 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales