Utilizzo di un oggetto COM per la connessione ad un database

di Giorgio Parmeggiani, in COM & WebClass,

Uno dei principali vantaggi dell'utilizzo di una programmazione orientata agli oggetti consiste nell'ottenere codice riutilizzabile. Le routine esterne, scritte attraverso un oggetto COM, sono richiamabili da tutte le applicazioni che ne hanno bisogno. Non siamo, quindi, costretti a riscrivere le stesse procedure in diversi programmi, ma è sufficiente richiamare l'oggetto utilizzando l'interfaccia standard che esso mette a disposizione.

Anche in ambiente Internet si sta sempre più affermando l'utilizzo delle Webclasses cioè di oggetti, presenti sul webserver, che sono richiamati all'interno di pagine dinamiche (es. ASP).

Veniamo ora all'oggetto COM presentato in questo articolo. Il linguaggio con cui è stato scritto è Visual Basic 6.0.

Utilizzo dell'oggetto

Prima di analizzare la struttura dell'oggetto vediamo come può essere facilmente richiamato mediante ASP.

Una pagina ASP può essere vista come un'applicazione che nasce e muore all'interno di essa.

Come esempio prendiamo una tabella HTML costituita da più righe (record) di un database che descrive una classifica di pezzi musicali. Premendo il bottone Aggiorna è sottomessa una form che, richiamando la stessa pagina, aggiorna la classifica.

In quest'esempio abbiamo un'unica pagina che provvede sia a visualizzare il contenuto delle righe che a effettuarne l'aggiornamento.

Nelle prime righe di codice troviamo, infatti, le seguenti istruzioni:

<%

If not isEmpty(Request.Form("Aggiorna"))Then

  set obj=Server.CreateObject("ADOGestione.Gestione")

  obj.nomeDatabase=Application("DataConn_ConnectionString")

  obj.NomeTabella="Classifica"

  obj.campoObbligatorio = "NomePezzo"

  obj.campoChiave = "IdPezzo"

  risultato = obj.Aggiorna(Request.Form)

  set obj=nothing

 End If

%>

La prima riga consiste nel controllare che l'utente abbia effettivamente richiesto un aggiornamento attraverso l'apposito bottone "Aggiorna" presente sulla Form.

Quindi viene dapprima creata un'istanza all'oggetto "ADOGestione" tramite il metodo "CreateObject" dell'oggetto "Server". Ciò ci consentirà di definire le proprietà dell'oggetto e di richiamarne i metodi.

Ricordo brevemente che per proprietà s'intendono parametri passati in input, mentre i metodi sono le funzioni messe a disposizione dall'oggetto.

Successivamente vengono impostate alcune proprietà di "ADOGestione":

  • nomeDatabase : Connessione DSN al database (nel Global.asa è stata definita la variabile di applicazione: Application("DataConn_ConnectionString") contenente la stringa di connessione.
  • NomeTabella : Tabella da aggiornare
  • campoChiave : Campo chiave della stessa tabella
  • campoObbligatorio : Campo giudicato "obbligatorio"

Le prime tre sono necessarie per identificare la tabella di database oggetto di aggiornamento.

La terza è un espediente usato per consentire la cancellazione di righe. Viene infatti supposto che, se l'utente cancella il contenuto del campo obbligatorio, richiede in realtà l'eliminazione dell'intera riga. (nel nostro esempio è ovvio che il nome del pezzo musicale è un campo che deve essere sempre presente su ogni riga del database).

L'ultima proprietà, infine, trasmette alla funzione esterna il nome del campo chiave della tabella, usato per agganciare le righe da aggiornare.

Per ultimo viene richiamato il metodo "Aggiorna" il quale esegue concretamente l'aggiornamento del DB.

Dopo il richiamo della procedura esterna di aggiornamento la pagina stessa provvederà, come se niente fosse, a ricaricare le righe già aggiornate, magari avvertendo l'utente, con un tranquillizzante messaggio di conferma.

Da notare che la funzione "Aggiorna" restituisce un valore booleano il quale assume valore "True" se l'aggiornamento è stato eseguito correttamente, "False" in caso contrario. Nel nostro esempio il valore di ritorno viene così gestito:

<%

If Risultato = "True" Then

  Response.Write("<center>")

  Response.Write("<font face=Arial color=ff0000>")

  Response.Write("L'aggiornamento è stato eseguito")

  Response.Write("</font></center>")

   else

  Response.Write("<center>")

  Response.Write("<font face=Arial color=ff0000>")

Response.Write("In questo momento non è possibile eseguire_

l'aggiornamento")

  Response.Write("</font></center>")

 End If

%>

Si noti che l'utilizzo di tale oggetto consente di evitare il tradizionale e noioso metodo di aggiornamento tramite codice script che, prevedendo la creazione di pagine con la sola funzione di gestire il database, devono generalmente essere riscritte e adattate per ogni sito nel quale vengono implementate.

Sviluppo dell'oggetto in Visual Basic

4 pagine in totale: 1 2 3 4
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti