Newsgroup: it.comp.lang.visual-basic
Titolo: ADO e transazioni

La mia è una domanda puramente retorica (si, retorica... non ho 
sbagliato a scrivere "teorica"):
se devo usare le transazioni per evitare che qualcosa vada storto, non 
posso direttamente usare on error?
Cioè ammesso che sto usando una "UPDATE miatabella...." e che si tenti 
di duplicare un campo con chiave univoca.
La query in ogni caso non verrà portata a termine perchè mi salterà 
fuori l'errore in run-time (che posso catturare con ON ERROR appunto).
Quindi... a che pro le transazioni?
Ripeto: è solo una domanda per trovare il motivo sicuramente 
fondamentale ma che al momento mi sfugge... o_O
-- 
Quando noi ignoranti eravamo di più, tutto era più bello (A. Celentano).
  ___   _   ___ _  _______   _______ ___
|   \ /_\ | _ \ |/ / _ ) \ / /_   _| __|
| |) / _ \|   / ' <| _ \\ V /  | | | _|
|___/_/ \_\_|_\_|\_\___/ |_|   |_| |___|

Quindi... a che pro le transazioni?
Mi sa che non hai ben compreso cosa sono le transazioni... :))))
Il tuo ragionamento va bene se hai a che fare con una modifica di una
tabella. Ma supponi di dover fare modifiche contemporaneamente
modifiche su un certo numero di tabelle differenti. Che succede se per
caso, quasi alla fine del lavoro, c'è un problema che invalida tutto
il lavoro svolto fino a quel momento? Se se sei in una transazione,
che hai avuto l'accortezza di iniziare prima dell'inizio delle
modifiche, fai un bel rollback e tutto torna come se non avessi mai
iniziato. Altrimenti, son dolori...
--
Ciao!
Luca Menegotto

Cioč posso fare:
Set Conn = New ADODB.Connection
Conn.Open ....
Conn.BeginTrans
Conn.Execute "..."
Conn.Execute "..."
e in caso di errore Conn.RollbackTrans mi annullerebbe tutti gli Execute 
fino a questo momento eseguiti?
Ne deduco che dopo un BeginTrans non avviene nessuna modifica reale alle 
tabelle se non dopo una chiamata a Conn.CommitTrans.
E' corretto?
-- 
Quando noi ignoranti eravamo di piů, tutto era piů bello (A. Celentano).
  ___   _   ___ _  _______   _______ ___
|   \ /_\ | _ \ |/ / _ ) \ / /_   _| __|
| |) / _ \|   / ' <| _ \\ V /  | | | _|
|___/_/ \_\_|_\_|\_\___/ |_|   |_| |___|
GIGAMAIL by X-Privat: 
http://www.x-privat.org/gigamail.php

E' corretto?
Oh yeah! 
--
Ciao!
Luca Menegotto

 E' corretto?
Esatto! 

 Oh yeah! 
...inchia! Non vedo l'ora di adoperarle allora!
Thx ancora!
-- 
Quando noi ignoranti eravamo di più, tutto era più bello (A. Celentano).


 iniziato. Altrimenti, son dolori...
Considerate anche che le transazioni aiutano a gestire
i lock sulle tabelle.
            danilo

             danilo
Azz... e a questo non c'ero arrivato...
Ovviamente si parla sempre del caso in cui devo effettuare più query in 
cascata, e se becco un lock senza una transazione mi sono fregato le 
altre tabelle.
Perchè finchè è una tabella sola da gestire, ON ERROR continua ad andare 
bene anche per i lock, no?


 andare bene anche per i lock, no?
Indipendentemente da quante tabelle sono coinvolte, dai lock e dal resto, 
stai attento che l'uso delle transazioni *non e'* un sostitutivo per la 
normale gestione degli errori.
Continueranno comunque ad essere scatenati, e la transazione di permette di 
prendere provvedimenti *dopo* che hai intercettato l'eventuale errore
Ciao
-- 
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown 

fondamentale ma che al momento mi sfugge... o_O
Mi pare hanno gia detto tutto gli altri, ti posso solo, se hai voglia
di approfondire l'argomento, consogliare un testo di sistemi
distribuiti:
Distributed Systems - Concepts and Design
autore Coulouris
Ed. Addison Wesley
Nella 4a edizione dovrebbero averlo tradotto anche in italiano, se ti
(e a chiunquue altro) interessano dei sebbene modestissimi risuntini
in italiano dei capitoli che al tempo avevo fatto per me chiedimeli in
mail.
---
Matteo 79

 mail.
Grazie, spedisci pure :)
Per rispondermi cancella dal mio indirzzo mail quello che non serve ;)
P.S.: Il libro appena posso lo compro, intanto nell'incertezza mi piglio 
i tuoi riassunti :)
-- 
Quando noi ignoranti eravamo di più, tutto era più bello (A. Celentano).
  ___   _   ___ _  _______   _______ ___
|   \ /_\ | _ \ |/ / _ ) \ / /_   _| __|
| |) / _ \|   / ' <| _ \\ V /  | | | _|
|___/_/ \_\_|_\_|\_\___/ |_|   |_| |___|
X-Privat Sondaggio "Libera Usenet" - 
http://www.newsserver.it/freeusenet.php