Utilizzo di un oggetto COM per la connessione ad un database

4 pagine in totale: <<Indietro 1 2 3 [4]

Dopo aver cancellato la riga diventa inutile ricercare gli altri campi nella stessa riga, quindi si esce dal loop per passare al record successivo. L'aggiornamento vero e proprio verrà eseguito solo alla fine del loop.

Dopo aver aggiornato tutte le righe presenti nel Request.Form dobbiamo chiudere gli oggetti di cui ci siamo serviti per accedere al database. Vengono quindi eseguite le seguenti istruzioni:

taborig.Close
Set taborig = Nothing
conn.Close
Set conn = Nothing
ctxObject.SetComplete

La prima riga di codice chiude il recordset che ci ha consentito di leggere e aggiornare il database, la riga successiva cancella l'istanza al relativo oggetto recordset. Le due righe successive eseguono la stessa operazione con l'oggetto connessione.

Un discorso a parte merita l'utilizzo dell'oggetto ctxObject.

L'oggetto ctxObject, fornito da Microsoft Transaction Server, consente di confermare l'intera transazione effettuata col database se tutti gli aggiornamenti sono andati a buon fine; oppure di annullarla se anche solo un aggiornamento è fallito.

Nel nostro caso tutti gli aggiornamenti sono stati eseguiti, usiamo quindi il metodo SetComplete per confermare la transazione.

Gestione degli errori

Analizzando la routine di gestione degli errori possiamo notare cosa succede quando fallisce un aggiornamento:

Err_Aggiorna:
' Campo non trovato in tabella
  If Err = 3265 Then Resume ProssimoCampo
' Aggiornamento NON eseguito correttamente
  aggiorna = False
  ctxObject.SetAbort
'  taborig.Close
  Set taborig = Nothing
  conn.Close
  Set conn = Nothing
  Exit Function

Queste righe di codice sono automaticamente eseguite quando nella routine Aggiorna si verifica un qualsiasi errore. Ciò avviene grazie al codice

On Error GoTo Err_Aggiorna

da insere all'inizio della routine, per evitare spiacevoli sorprese.

Il verificarsi dell'errore 3265 significa che uno dei parametri arrivati dal client non è il nome di un campo del database, per cui. il programma è fatto ripartire dopo il tag

ProssimoCampo
per elaborare il successivo parametro.

In tutti gli altri casi si è verificato un errore nell'aggiornamento del database. La funzione Aggiorna ritorna un valore False per comunicare al client l'avvenuto errore. L'utilizzo del metodo SetAbort consente poi di annullare l'intera transazione e quindi anche tutti gli aggiornamenti effettuati prima del verificarsi dell'errore. Anche in questo caso dobbiamo ovviamente chiudere gli oggetti usati per gestire il database.

Conclusioni

Abbiamo visto che Visual Basic consente una rapida creazione di oggetti COM che comunicano con le applicazioni attraverso un'interfaccia standard.

Il grosso vantaggio dell'utilizzo di tali oggetti è costituito dal fatto che sono riutilizzabili. La standardizzazione dell'interfaccia ci permette, infatti, di usare metodi dell'oggetto che eseguono la funzione voluta. Ovviamente non c'interessa sapere come la funzione richiamata esegue il suo compito, l'unica cosa importante è il risultato che essa produce.

Quello che abbiamo visto è solo un caso di possibile utilizzo di un oggetto COM: in realtà questa filosofia di programmazione può essere applicata in tantissimi altri casi.

Nello stesso esempio che abbiamo visto la routine MidStr può essere trasformata in un oggetto permettendo così di avere sempre disponibile una funzione già pronta, affidabile, che consente di suddividere una stringa in sottostringhe delimitate: in pratica un'estensione della funzione Mid interna a Visual Basic.

In molti pensano che il futuro della programmazione Web-oriented sia costituito dall'utilizzo sempre più massiccio della programmazione ad oggetti. Riuscendo ad individuare quali sono le procedure tipiche che devono essere implementate per la costruzione di un sito dinamico, buona parte del lavoro si può limitare all'assemblaggio di affidabili componenti server-side.

4 pagine in totale: <<Indietro 1 2 3 [4]

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.


TUTORIALS
TOP TEN ARTICOLI
NOTIFICHE

Iscriviti alla nostra newsletter nuoviarticoli per ricevere e-mail le notifiche!

Indirizzo e-mail:
PROVIDER ASP.NET 2.0

Seleziona il database per avere il web.config pronto per Membership, Roles e Profile API.



IN EVIDENZA
MISC