Condividi tramite


Esempio di tecnologia delle transazioni

Aggiornamento: novembre 2007

In questo esempio viene illustrato come utilizzare le transazioni in un'applicazione .NET Framework. Per illustrare in modo esplicito le funzioni di commit e di interruzione delle transazioni, nell'esempio viene recuperato un valore da un database di SQL Server affinché l'utente possa modificarlo e successivamente inviare il nuovo valore al database.

Nota:

Per generare ed eseguire l'esempio, è necessario che nel computer sia installato Microsoft SQL Server 2000 o versione successiva e che il motore del database sia configurato per l'utilizzo dell'autenticazione di Windows. Se sono presenti altre configurazioni, è necessario modificare la stringa di connessione SQL nel file TxObj.cs o TxObj.vb.

Per informazioni sull'utilizzo degli esempi, vedere i seguenti argomenti:

Per creare un database TxDemoDB

  1. Aprire una finestra del prompt dei comandi, quindi spostarsi in una delle sottodirectory specifiche del linguaggio della directory Technologies\ComponentServices\Transactions.

  2. Digitare osql -E -S (local)\SQLExpress -i TxDB.sql dalla riga di comando. In alternativa, aprire la finestra Query Analyzer di SQL Server, caricare il file TxDB.sql, quindi scegliere Esegui.

    Verrà creato un nuovo database TxDemoDB in SQL Server.

Per generare l'esempio utilizzando il prompt dei comandi

  1. Aprire una finestra del prompt dei comandi, quindi spostarsi in una delle sottodirectory specifiche del linguaggio della directory Technologies\ComponentServices\Transactions oppure utilizzare la stessa finestra dei comandi utilizzata per creare il database TxDemoDB precedente.

  2. Dalla riga di comando digitare msbuild TransactionsCS.sln o msbuild TransactionsVB.sln, a seconda del linguaggio di programmazione che si desidera utilizzare.

Per generare l'esempio utilizzando Visual Studio

  1. Aprire Esplora risorse, quindi spostarsi in una delle sottodirectory specifiche del linguaggio relative all'esempio.

  2. Fare doppio clic sull'icona relativa a TransactionsCS.sln o TransactionsVB.sln, a seconda del linguaggio di programmazione che si desidera utilizzare, per aprire il file in Visual Studio.

  3. Scegliere Genera soluzione dal menu Genera.

Per eseguire l’esempio

  1. Aprire la finestra del prompt dei comandi o Esplora risorse, quindi spostarsi nella directory contenente il nuovo file eseguibile generato.

  2. Digitare TxDemo.exe dalla riga di comando oppure fare doppio clic sull'icona relativa al file eseguibile in Esplora risorse.

  3. Il valore corrente verrà letto dal database e successivamente visualizzato.

  4. Nel campo New Value immettere un numero compreso nell'intervallo da 0 a 10, estremi inclusi, quindi scegliere il pulsante Post.

  5. Verrà visualizzato il messaggio "About to commit the transaction" per segnalare che sta per essere eseguito il commit della transazione. Scegliere OK. Il campo Current Value verrà aggiornato con il nuovo valore immesso.

  6. Nel campo New Value immettere un valore compreso nell'intervallo da 0 a 10. Scegliere il pulsante Post.

  7. Verrà visualizzato il messaggio "About to abort the transaction because the new value ([valore]) is either <0 or >10." per segnalare che la transazione verrà interrotta perché il valore non è compreso nell'intervallo. Scegliere OK. Il campo Current Value rimane invariato perché, anche se durante la transazione il valore corrente è stato modificato, per effetto del rollback è stato ripristinato il valore originale.

  8. Eseguire l'operazione con gli stessi dati mediante il pulsante AutoPost. Sarà possibile notare che al momento dell'interruzione della transazione viene generata un'eccezione COMException per notificare ad AutoComplete di interrompere il processo.

Per disinstallare l'esempio

  1. Nella finestra del prompt dei comandi spostarsi nella directory in cui è stato eseguito il file mssbuild.exe o in cui è stato aperto il file sln.

  2. Digitare msbuild.exe TransactionsVB.vbproj /t:Clean o msbuild.exe TransactionsCS.csproj/t:Clean, a seconda del linguaggio di programmazione che si desidera utilizzare. In questo modo vengono chiamati gli strumenti regsvcs.exe e gacutil.exe con l'opzione /u per rimuovere i file di esempio dal catalogo COM+ e dalla Global Assembly Cache.

  3. Digitare osql -E -S (local)\SQLExpress -i TxDBClean.sql dalla riga di comando. In alternativa, aprire la finestra Query Analyzer di SQL Server, caricare il file TxDBClean.sql, quindi scegliere Esegui. Il database TXDemoDB verrà rimosso da SQL Server.

Requisiti

Versione di .NET Framework: 2.0, 1.1, 1.0

Osservazioni

Per transazione si intende un insieme di operazioni strettamente correlate. Per il completamento di una transazione è necessario che vengano eseguite tutte le operazioni. Se una di esse non riesce, dovrà essere eseguito il rollback di tutte le operazioni precedenti per evitare eventuali incoerenze.

Per ulteriori informazioni sulle fasi di registrazione e creazione di file binari di esempio, vedere i commenti nei file di codice sorgente. Nello strumento di amministrazione Servizi componenti la versione C# del componente viene visualizzata come TxDemoServerCS.TxObject, mentre la versione Visual Basic viene visualizzata come TxDemoServerVB.TxObject.

Vedere anche

Concetti

Transazioni locali (ADO.NET)

Riferimenti

AutoCompleteAttribute

ContextUtil

ServicedComponent

System.ComponentModel

System.Data

System.Data.SqlClient

System.Drawing

System.EnterpriseServices

System.Reflection

System.Runtime.InteropServices

System.Runtime.Serialization

System.Windows.Forms

TransactionAttribute

TransactionOption

WebMethodAttribute