Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
Domanda su transazione e campo contatore
martedì 18 settembre 2007 - 13.50
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Amodio
Profilo
| Expert
525
messaggi | Data Invio:
mar 18 set 2007 - 13:50
ho un dubbio sulla transazione:
se apro una tansazione,ed avvio 2 procedure, la procedura A inserisce dentro "ordini" la procedura B inserisce dentro "Dettaglio_Ordini"
appena la procedura A,inserisce un record, mi restituisce anche il contatore, in modo che la procedura B possa inserire il codice relativo all'ordine
essendoci una transazione, mi recupera il contatore?
oppure la transazione inserisce effettivamente i record solo DOPO che tutti sono andati a buon fine?
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 18 set 2007 - 14:18
>essendoci una transazione, mi recupera il contatore?
>oppure la transazione inserisce effettivamente i record solo
>DOPO che tutti sono andati a buon fine?
In genere per questo tipo di cose si usa una Stored Procedure per inserire l'ordine, e si recupera il counter con SELECT @@IDENTITY oppure ancora meglio si usa scope_identity(). Così puoi inserirlo anche in altre tabelle o restituirlo al chiamante.
A fine transazione tu puoi dare un COMMIT e quindi tutto quello che è successo dall'inizio viene come dire "approvato". Esempio se tu fai delle INSERT nel database all'interno di una transazione queste operazioni non sono effettivamente "live" fino a quando hai eseguito il COMMIT.
Al contrario se ci sono errori esegui un ROLLBACK e tutto ciò che hai fatto (per esempio operazioni di INSERT, DELETE,ecc.) vengono annullate tornando alla situazione originale. Chiaramente un messaggio d'errore dev'essere restituito al chiamante.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
Amodio
Profilo
| Expert
525
messaggi | Data Invio:
mar 18 set 2007 - 15:41
il problema è che uso access
quindi niente stored procedure
ora mi sto informando su cosa sono le scope_identity()
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 18 set 2007 - 16:40
>il problema è che uso access
>quindi niente stored procedure
>ora mi sto informando su cosa sono le scope_identity()
Allora cade tutto il resto del discorso. Access non ha un supporto alle transazioni come quello offerto dai più noti RDBMS.
L'unica cosa che puoi fare è usando la stessa connessione, fare una INSERT e poi fare un ExecuteScalar con un SELECT @@IDENTITY per recuperare l'ultimo ID.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !