Utilisation du commit et rollback avec ODBC ?

Utilisation du commit et rollback avec ODBC ? - PHP - Programmation

Marsh Posté le 05-12-2002 à 11:41:05    

:hello:
 
j'ai quelques bases en SQL mais je n'ai jamais utilisé commit et rollback alors que ca a l'air d'etre essentiel.
 
J'effectue mes requetes avec le driver ODBC en PHP.
 
Malgré mes recherches, je n'ai trouvé aucun exemple de script utilisant commit et rollback.
 
Pouvez-vous me donner un exemple succint s'il vous plaît afin que je vois comment on utlise ca?
 
merci d'avance :jap:


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 05-12-2002 à 11:41:05   

Reply

Marsh Posté le 05-12-2002 à 11:52:57    

Batman-Fr a écrit a écrit :

:hello:
 
j'ai quelques bases en SQL mais je n'ai jamais utilisé commit et rollback alors que ca a l'air d'etre essentiel.
 
J'effectue mes requetes avec le driver ODBC en PHP.
 
Malgré mes recherches, je n'ai trouvé aucun exemple de script utilisant commit et rollback.
 
Pouvez-vous me donner un exemple succint s'il vous plaît afin que je vois comment on utlise ca?
 
merci d'avance :jap:



Quelle base de données (oracle, access, mysql ?)
Est ce que t'as déjà utiliser des "transactions" avec une base de donnée?
 
Bon, déjà, il me semble que mysql ne possède pas de système de transaction, du coup, pas de commit ou de rollback possible en php.
 
De plus, php fonctionne en système d'envoie immédiat des requêtes de mise à jour et donc sans passer par un cache au niveau de php, donc si la base de donnée n'a pas de système de transaction, je vois pas quand tu veux faire un commit ou un roolback.
 
Pour l'utilisation du commit et du rollback, de manière théorique, ca marche comme suit :
1) on démarre une transaction
2) on envoie les requêtes une par une
3) la base de donnée exécutes les requêtes et stockes les données modifié dans des tables temporaires
4-1) si une requête tombe en erreur, on fait un rollback et la base de donnée se contente d'oublier purement et simplement les mises à jour que tu lui avait demandé depuis le début de la transaction
4-2)si aucune requête tombe en erreur, tu fais un commit et là, la base de donnée stocke les modifications comme elle l'aurait fait s'il y avait pas eu de transaction
5) on referme la transaction et les requêtes suivantes sont géré comme d'habitude.
 
Bon, en pratique, du côté de la base de donnée, c'est surement pas géré tout à fait comme ça mais au moins, mon explication permet de mieux comprendre comment c'est fait.
 
 
Sinon, je n'ai jamais utilisé de transaction en php et donc je n'ai aucun exemple de commit ou roolback à te présenter.

Reply

Marsh Posté le 05-12-2002 à 12:00:54    

merci :jap: pour ces precisions, je voyais a peu pres comment ca fonctionnait, par contre je ne savais pas que les donnees etaient d'abord stockees dans une table temporaire :)
 
j'attaque une base MS SQL mais via la couche ODBC de PHP
MS SQL gere les transactions, pas de doute la dessus
 
quelqu'un touche aux transactions sous PHP ?


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 05-12-2002 à 12:24:25    

Batman-Fr a écrit a écrit :

merci :jap: pour ces precisions, je voyais a peu pres comment ca fonctionnait, par contre je ne savais pas que les donnees etaient d'abord stockees dans une table temporaire :)
 
j'attaque une base MS SQL mais via la couche ODBC de PHP
MS SQL gere les transactions, pas de doute la dessus
 
quelqu'un touche aux transactions sous PHP ?



J'ai dit de manière, théorique. ;)
Je sais pas si en pratique, ils font comme ça, ou s'ils verouille les pages contennant les données en attendant le commit ou le rollback afin de mettre vraiment les données à jours.
De plus, la pluspart des gestionnaires de bases de données ont un journal des modifications a venir ou effectué et ca m'étonerait pas que certains d'entre eux, mélange le vérouillage des pages avec l'utilisation de ce journal afin de faire desuite les modifs (gain de temps au moment du commit au détriment du rollback) sans les rendre publique (vérouillage des données) tout en étant capable d'effacer, en cas de rollback, les modifs qui ont été faite.

Reply

Marsh Posté le 05-12-2002 à 14:04:35    

Rien à battre que se soit du PHP par ODBC  :p  
 
Pour utiliser des Commit et Rollback sous MSSQL, tu utilise le T-SQL  intégré.
 
Ecrit tes procèdures stockées avec tes transactions, et appelle les... depuis ce que tu veux.

Reply

Marsh Posté le 05-12-2002 à 14:18:12    

ok, du coup on aborde quelque chose que ne connais pas du tout :(  
 
tu connais peut etre un site qui explique un peu la chose ? :??:
 
 
:jap:


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 05-12-2002 à 14:23:46    

C'est trés simple :
 
Tu installe MSSQL si c'est pas déjà fait.
Tu auras dans l'aide toute la doc sur la syntaxe du T-SQL (Transac SQL 92, c'est le language intégré à MSSQL2000).
 
De plus, dans l'analyseur de requête (outil fourni avec MSSQL), tu as des sample de procédures stockées !
 
Le seul truc à vérifier, c'est la syntaxe d'appel des procédure stockées, avec passage de paramètres, depuis PHP... , j'espère que c'est possible  :p

Reply

Marsh Posté le 05-12-2002 à 17:04:15    

:jap: a nouveau, je vais regarder de ce cote (MSSQL est deja installe, l'analyseur de requete, je l'utilise pour des requetes simple, je vais approfondir ;))
 
:hello:


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed