Version 1.0.0 - 2006/01/31

8.3 Les Transactions

Bien que comme nous l’ayons précisé, les connexions sont les éléments centraux des échanges, mais il n’en demeure pas moins des objets de second niveau pour les développeurs. De plus il leur maque un élément, essentielle pour les ordres SQL, vous permettant de contrôler véritablement la stabilité de vos applications. Il s’agît des transactions modélisées dans Noas PHP par la classe NoasExchangeTransaction. Cette classe encapsule une instance de connexion et implémente toutes ses méthodes. En l’utilisant vous êtes en direct avec SQL 92. Elle a été développée pour que vous tiriez la meilleure partie des fonctionnalités de vos bases de données. Cependant, certaines de ces bases ne supportent pas l’intégralité de ces fonctions. Mais dans tous les cas, soit la connexion associée utilise un artifice pour la simuler, soit vous disposez des méthodes déterminant l’activation ou non de la dite fonction. A l’instar des connexions, les transactions doivent être ouvertes avant son utilisation, et fermés après. Le fait de débuter une transaction ne vous dispense pas de son ouverture.
Nous ne serons trop vous conseiller de vous familiariser avec les niveaux d’isolation. En la maîtrisant, vous pourrez atteindre la stabilité nécessaire à un développement professionnel, et ainsi envisager la réalisation de projets ambitieux d’e-business.

Personnalisation de transaction

<?php
Noas::import("noas.exchange.NoasExchangeTransaction");
class BridgeExchangeTransaction extends
                                                                NoasExchangeTransaction {
    function __construct() {
        parent :: __construct("db:bridge");
    }
}
?>

Utilisation de transaction

<php

      $oTrans = new BridgeExchangeTransaction ();
      $oTrans->open();
      try{
        $st = $oTrans->createStatement();

        $oResultset = $oTrans->query($st);
        while($oResultset->next()){
          $value .= $oResultset->getString(1);
        }
      } catch(Exception $ex){
        Noas::log($ex);
      }
      $oTrans->close();
    }

  }

 

© 2005 Réoka Djohou, tous droits réservés.