IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C#] histoire de commit et de roolback


Sujet :

ASP.NET

  1. #1
    Membre régulier Avatar de dupin40
    Profil pro
    Inscrit en
    Août 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 102
    Points : 100
    Points
    100
    Par défaut [C#] histoire de commit et de roolback
    Je me pose une petite question :
    J'utilise les commandes de types oracle ( OracleCommand ) pour exécuter des requêtes de mise à jour, de insert, select ....
    Mais maintenant que je m'occupe de la gestion des erreurs dans mon application notament les erreurs (exceptions)
    liées aux bases de données (je sais j'aurais du le faire dès le début mais bon .. .. me crier pas dessus .. .. ),
    je me pose une question:
    Si je ne commit pas mes transaction manuellement, elles sont commitées à fermeture de ma connexion ? c'est bien ca .... (si ya pas eut d'erreur)
    et s'il y a des erreurs, est ce que le roolback est automatique aussi à la fermeture de la connexion ?
    Sinon faut 'il les gérer soi-meme et faire les commit qd ca marche et les roolback dans les catch des exceptions ?

    si qqun c'est posé la question ........
    no frag, no life

  2. #2
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 61
    Points : 83
    Points
    83
    Par défaut
    Dans la documentation de OleDbConnection.BeginTransaction(), il
    est précisé :

    Vous devez valider ou restaurer explicitement la transaction à l'aide de la méthode Commit ou Rollback.

  3. #3
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    La règle d'ADO est stricte. toute les transactions dont le Commit explicite n'a pas été fait seront annulée en cas d'incident.
    Ce qui revient à dire qu'à la fermeture de la connexion, elle auront toutes un RollBack Implicite.

  4. #4
    Membre régulier Avatar de dupin40
    Profil pro
    Inscrit en
    Août 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 102
    Points : 100
    Points
    100
    Par défaut
    Citation Envoyé par bidou
    La règle d'ADO est stricte. toute les transactions dont le Commit explicite n'a pas été fait seront annulée en cas d'incident.
    Ce qui revient à dire qu'à la fermeture de la connexion, elle auront toutes un RollBack Implicite.
    Là ca m'intéresse ... ... J'ai encore une ou deux ch'tites questions :
    Quand tu dis seront annulées en cas en cas d'incident. Un incident, c'est par exemple une exception soulévé ?
    Si la déconnexion ( close() ou dispose() ) permet de gérer le commit ou le roolback selon ce qu'il c'est passé dans la transaction, faut il faire confiance ou bien se faire le commit ou le roolback avant de fermer la connexion ?
    no frag, no life

  5. #5
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Une exception soulevé non gérée va fermer la connexion, donc toute les transactions seront annulées (sauf celles commitées auparavant)

    Il n'y a pas de gestion. Je le répète toutes les transactions n'ayant pas eu un commit explicite seront annulées

  6. #6
    Membre régulier Avatar de dupin40
    Profil pro
    Inscrit en
    Août 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 102
    Points : 100
    Points
    100
    Par défaut
    Merci bien Bidou ....
    C'est beaucoup plus clair !!

    Donc si je veux garder une partie des mes transcations je commit (explicitement)
    sinon je perd l'ensemble des transactions faites lors de la connexion si un incident intervient avant
    la fermeture de la connexion.


    a+
    no frag, no life

  7. #7
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2014
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2014
    Messages : 606
    Points : 1 447
    Points
    1 447
    Par défaut
    Citation Envoyé par dupin40 Voir le message
    Je me pose une petite question :
    J'utilise les commandes de types oracle ( OracleCommand ) pour exécuter des requêtes de mise à jour, de insert, select ....
    Mais maintenant que je m'occupe de la gestion des erreurs dans mon application notament les erreurs (exceptions)
    liées aux bases de données (je sais j'aurais du le faire dès le début mais bon .. .. me crier pas dessus .. .. ),
    je me pose une question:
    Si je ne commit pas mes transaction manuellement, elles sont commitées à fermeture de ma connexion ? c'est bien ca .... (si ya pas eut d'erreur)
    et s'il y a des erreurs, est ce que le roolback est automatique aussi à la fermeture de la connexion ?
    Sinon faut 'il les gérer soi-meme et faire les commit qd ca marche et les roolback dans les catch des exceptions ?

    si qqun c'est posé la question ........
    ROLLBACK plutôt, non ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Interbase en réseau:commit ne s'appliquent pa aux autres pc?
    Par Harry dans le forum Bases de données
    Réponses: 9
    Dernier message: 27/05/2004, 14h10
  2. [DELETE] nombre d'enregs commités
    Par delphim dans le forum Langage SQL
    Réponses: 6
    Dernier message: 19/02/2004, 09h44
  3. read committed, serializable... et par défaut k'en est-il?
    Par superdada dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 01/12/2003, 18h58
  4. Query Begin et Commit son sur un bateau....
    Par faoz75 dans le forum Requêtes
    Réponses: 5
    Dernier message: 15/08/2003, 11h48
  5. commit et rollback....?
    Par The_Nail dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 06/06/2003, 14h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo