begin process at 2012 05 26 20:34:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

Autre

 > 

Débutant(s)

 > 

Question bête (c'est quoi un commit?)


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

Question bête (c'est quoi un commit?)

jeudi 31 août 2006 à 09:52:40 | Question bête (c'est quoi un commit?)

Polack77

Avant de me faire traiter de feignait je tien à dire que j'ai regarder sur le net avant de posée cette question (rapidement c'est vrais mais j'ai plein de truc à faire et je ne peut pas me permettre d'y passée deux heures).
J'aurais en faite simplement voulut avoir des précisions et savoir si il y des "trucs" à savoir pour l'utilisé correctement.
Déjà voila ce que j'ai compris :
    Un commit s'utilise pour versifier l'exécution de requête afin d'exécuter toute les requête ou aucune, et, cas ce passerais de la façon suivante :
       Désactivation du commit automatique (à priori avec un "BEGIN TRANSACTION" mais en fais cette commande c'est quoi? Une sorte de requête ???)
       On fais les requête normalement ("INSERT INTO ..." cas je sais quand même ce que cas veut dire! )
       Effectue une commit ("COMMIT TRANSACTION" alors si j'ai bien compris on ne fait cas que si on n'a pas d'erreur durant les "INSERT" ? Mais cette commande aussi je ne sais pas ce que c'est! )
       En cas d'erreur durant les "INSERT" on fait ("ROLLBACK TRANSACTION" Donc ca c'est pour annulé tout les "INSERT" effectuer depuis le dernier commit? Heeee, cas non plus je ne sais pas si c'est une requête ou autre !)

Bon alors en résumé je crois avoir compris ce que c'est qu'un "commit" tout du moins en théorie mais je ne sais pas command on s'en sert en vrais.

Merci d'avance.



Ce soir dans "triste monde tragique" :

Des vers qui mangent les programmeurs !
Des virus sorte des ordinateurs et attaque des gents !

jeudi 31 août 2006 à 10:44:31 | Re : Question bête (c'est quoi un commit?)

skweeky

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !

Il y a 3 commandes :

  • BEGIN TRANSACTION
  • COMMIT TRANSACTION
  • ROLLBACK TRANSACTION

BEGIN TRANSACTION marque le début d'une transaction... Quand on se trouve dans le cadre d'une transaction, toutes les requêtes de modification (INSERT / DELETE / UPDATE) executées seront toutes refusées ou acceptées en bloc.

Je fais pas exemple ceci :

BEGIN TRANSACTION

INSERT INTO TableA (ChampA)
VALUES (1)

UPDATE TableB
SET ChampB = 7

DELETE FROM TableC
WHERE Id = 89

COMMIT TRANSACTION


Toutes les requêtes entre BEGIN TRAN et COMMIT TRAN sont validées. Si par contre je remplace COMMIT par ROLLBACK, toutes les modifications seront annulées.

Le principe de la transaction c'est tout ou rien... soit tout passe (COMMIT) soit rien (ROLLBACK).

Christian Robert - Winwise
http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration

jeudi 31 août 2006 à 10:58:02 | Re : Question bête (c'est quoi un commit?)

Polack77

    Donc si j'ai bien compris "BEGIN TRANSACTION", "COMMIT TRANSACTION", "ROLLBACK TRANSACTION" sont des commandes (je ne sais pas si c'est comme cas qu'on dit) SQL (soit ~ la même chose qu'une requête). Mes erreur (en cas d'erreur) me sont quand même remonté au moment des "INSERT"/"UPDATE"/"DELETE". Donc pour faire une transaction en bloc (je ne sais pas non plus si c'est comme cas qu'on dit) j'exécute le commande "BEGIN TRANSACTION" je fais ensuite mes requête ou je vérifie qu'elles ne me remontent pas d'erreur, et, en cas d'erreur j'exécute "ROLLBACK TRANSACTION", si non (pas d'erreur) "COMMIT TRANSACTION" pour valider toutes mes requête.
    Dite moi si je me trompe.

Merci bien.

CodeS-SourceS c'est vraiment vachement bien (tout langage confondu)
Vive cette communauté!!!


Ce soir dans "triste monde tragique" :

Des vers qui mangent les programmeurs !
Des virus sorte des ordinateurs et attaque des gents !
vendredi 1 septembre 2006 à 19:15:32 | Re : Question bête (c'est quoi un commit?)

Malkuth

Membre Club
C'est ca effectivememt

pour capturer les erreurs tu peux faire un truc de se genre :
--Début de la transaction
 BEGIN TRANSACTION
--Capture des erreurs
 BEGIN TRY
   --ICI tu fais tes requettes
   ..........................
   ..........................
   --Validation de la tranxsaction
  COMMIT TRANSACTION
--Fin du block de capture d'erreur
END TRY
--Gestion des erreurs
BEGIN CATCH
   --Annulation de la transaction
  ROLLBACK TRANSACTION
   --la je sauveguarde les informations d'érreur dans une table
  INSERT INTO Erreurs
   (ERROR_NUMBER,
   ERROR_SEVERITY,
   ERROR_STATE,
   ERROR_PROCEDURE,
   ERROR_LINE,
   ERROR_MESSAGE)
  VALUES
   (ERROR_NUMBER(),
   ERROR_SEVERITY(),
   ERROR_STATE(),
   ERROR_PROCEDURE(),
   ERROR_LINE(),
   ERROR_MESSAGE())
--Fin du block de gestion d'erreur
 END CATCH

Il y'a beaucoup a dire sur les transaction je te conseille de te familiarisé avec et d'aller voir sur MSDN pour plus d'infos
vendredi 1 septembre 2006 à 19:16:14 | Re : Question bête (c'est quoi un commit?)

Malkuth

Membre Club
PS SQL serveur 2005 uniquement pour le code Précédent


Cette discussion est classée dans : insert, question, requête, cas, commit


Répondre à ce message

Sujets en rapport avec ce message

Question concernant une requet SQL [ par developvbdebut ] Bonjour tout le mondeEst il possible de mêttre deux insert into dans une même requet.Exemple:insert into tbl_A..............................insert int requête Insert Into [ par richch ] Salut,Est ce que je peux utiliser cette requête, si non quelle est l'erreur?SQL="insert into Article (code_Famille, lib_Pr, def_Pr, princ_Vertus, gluc Problème Requête SQL INSERT INTO sous access [ par bonnaud ] Bonjour,J'ai un problème avec une requête INSERT INTO.En fait je veux insérer dans une BDD des champs d'une autre table. Le problème qu'en j'insère ce INSERT INTO une seule valeur [ par bigondas ] j'ai un formulaire access fait à partir d'une table seule, le but de ma requête est que lorsque l'on clique sur un bouton, la macro appelée déclenche Probleme de requête avec INSERT [ par emmanuel9 ] Bonjour à tous, J'aurais voulu savoir si il est possible de créer une requête de ce type : INSERT INTO TABLE(NB) VALUE (SELECT MAX(MONTANT) FROM DEPEN Question requête Mysql [ par AgentSmith ] Bonjour à tout les programmeurs SQL... Je vous solicite pour une quéstion simple voir une question de debutant. Ma question ce porte sur une recherche Faire un requête insert avec une condition [ par omgirl ] Bonjour à tous,Voilà je voudrais savoir comment faire une requête insert avec une condition.Je vais essayé de vous expliquer ça :  -j'ai une table equ Requête INSERT INTO entre deux serveurs [ par bowmore ] Bonjour,   Je cherche à faire une requête INSERT INTO, ou toute autre commande me permettant de transférer des données issues d'une requête select d'u [Access 2007] - requête avec auto-incrément [ par ben85000 ] Bonjour à tous ! J'ai un petit problème avec une requête SQL avec une clé primaire qui est en auto-incrément. Voici la requête en question qui cloche Requête de fou furieux (en tout cas pour moi) [ par Le newbie ] Bonjour, j'ai une requête à construire qui me pose problème Voici la structure de la table : id (non unique) deb fin Secteur 1


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 0,671 sec (4)

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