Une commande sql "rollback" en asp ? - ASP - Programmation
Marsh Posté le 16-01-2004 à 18:49:58
Faire une recherche sur les transactions en SQL ou ASP.
Marsh Posté le 16-01-2004 à 19:27:57
davjack a écrit : Avec une requète sql en asp, est-ce possible de faire un rollback pour par exemple annuler une commande DELETE ? |
ta base doit être en mode commit par statement, je sais plus comment on change ça.
mais commence ta séquence par "begin" ça devrait ouvrir une transaction (donc tu auras savepoint et rollback de dispo). par contre n'oublie pas que si tu oublies le "commit" à la fin, tu perds tout.
Marsh Posté le 16-01-2004 à 23:12:09
tu commences par Begin not Atomic et tu valides par Commit (c'est le mode transactionné)
Marsh Posté le 16-01-2004 à 23:13:18
http://www.devguru.com/Technologie [...] intro.html
Regarde du côté des méthodes de l'objet "connection"
Marsh Posté le 16-01-2004 à 23:15:58
PS: et c'est un peu plus propre que des begin et des commit de goret, parceque y'a pas deux SGBD qui utilisent la même syntaxe, alors niveau portabilité c'est 0.
Marsh Posté le 16-01-2004 à 23:18:59
Par exemple, avec Oracle, pour valider des bouts de transaction tout en pouvant les rollbacker quand même, c'est SAVEPOINT la syntaxe. Avec SQL Server, c'est moins proc, il support les transactions imbriquées. Avec ADO et ses méthodes, tu gères transactions imbriquées sans te soucier du joyeux bordel qui est derrière.
Marsh Posté le 16-01-2004 à 23:22:18
Oracle aussi supporte les transactions imbriquées. C'est d'ailleur dans la norme.
Marsh Posté le 16-01-2004 à 23:23:17
sauf que c'est avec l'instruction savepoint (et globalement, ça marche pas pareil)
tu peux pas avoir plusieurs begin trans à la queue leue-leue (ou alors c'est nouveau, sur la 8.0.5 je peux te certifier que c'est impossible)
Marsh Posté le 16-01-2004 à 23:25:39
A ma connaissance, ce code marche pas sous Oracle :
|
(tiré de la doc SQL Server 2000)
Marsh Posté le 16-01-2004 à 23:28:03
Pis y gère ça Oracle ? (jamais testé)
|
(une transaction dont le scope s'applique à plusieurs bases)
Marsh Posté le 16-01-2004 à 23:28:21
http://asia.cnet.com/itmanager/tec [...] 1-2,00.htm
je connais pas la version.
Marsh Posté le 16-01-2004 à 23:33:23
ha ouais ! t'ain y sont relous, y peuvent pas se décider à garder chacuns leurs spécificités ?
sinon, oracle gère les transactions nommées ? c'est pratique pour commiter (ou rollbacker) plusieurs niveau d'imbrication d'un coup.
style :
begin tran globale
traîtement 1
begin tran mini
traîtement 2
commit mini
begin tran toto1
traîtement 3
begin tran toto2
traîtement 4
if je suis pas heureux
rollback globale
end if
commit toto2
commit toto1
commit globale
ca peut être utile dans des fonctions récursives notamment, s'il se produit une erreur grave au niveau N et qu'on ne peut pas propager l'erreurs aux niveaux inférieurs. on rollback tout, et on arrête tout, zou
Marsh Posté le 16-01-2004 à 23:48:59
MagicBuzz a écrit : ha ouais ! t'ain y sont relous, y peuvent pas se décider à garder chacuns leurs spécificités ? |
http://www.cse.unsw.edu.au/~maliba [...] mands.html
'faudrait que tu laches un peu SQL Server et que tu passe à google aussi.
Marsh Posté le 17-01-2004 à 00:24:36
je vois pas trop le sens de ton poste.
1) prends oracle 8.0.5, il ne supporte pas ces trucs.
2) je pose une question. t'as l'air de savoir, alors autant te la poser à toi plutôt qu'à google, sinon je vois pas trop à quoi sert un forum
Marsh Posté le 17-01-2004 à 00:31:00
j'en sais rien, moi les BDD ça me casse les couilles, mais comme je sors de 3 ans de cours dessus, je connais un peu et je suis capable de pas me laisser embobiner par des comparaisons douteuses entre savepoint et begin.
Maintenant sortir des informations précises, ça se fait avec google, à moins d'être une encyclopédie vivante, ce que je ne suis pas.
Si je suis venu c'est parce que je surveille les topics qui ont peu de réponses (qui bien souvent se règlent à coup de google, d'où ma citation).
Marsh Posté le 17-01-2004 à 11:12:32
de toute façon, dans tous les cas, c'est pas avec les instructions begin et rollback qu'on peut faire proprement des trasactions en ASP, mais en passant par les méthodes d'ADO, donc savepoint, transaction nommées, et autres joyeusetés, on s'en fout un petit peu à la limite
Marsh Posté le 16-01-2004 à 16:46:12
Avec une requète sql en asp, est-ce possible de faire un rollback pour par exemple annuler une commande DELETE ?
Et si c'est possible, comment faire ?
J'ai déjà essayer de mettre une commande "rollback" juste après la commande "DELETE" sans fermer la connection mais ça ne marche pas....