Sei in: Per i Webmaster - Corso di ASP - Oggetto Command
L'oggetto Command si usa spesso quando è necessario apportare
modifiche all'interno di un database, dove per modifiche si intende
inserimento di dati, modifica di dati e cancellazione di dati.
L'istruzione per creare l'istanza dell'oggetto non è diversa da quelle già
viste per le Connection e i Recordset, ovvero:
Dim objCmd
Set
objCmd = Server.CreateObject("ADODB.Command")
Ciò di cui necessita
questo oggetto è una impostazione delle proprietà che definiscono di quale
connessione, di che tipo di istruzione e di che tipo di comando si farà
uso. Poi, tramite il metodo Execute, si completa l'istruzione. Vediamo un
esempio:
<!--#include
file="percorso/adovbs.inc"-->
<%
Dim path, objCon, objCmd, strSql, intNrOfRecords
path = "percorso\nomefile.mdb"
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &
server.MapPath(path)
Set objCmd = Server.CreateObject("ADODB.Command")
strSql = "INSERT INTO Utenti (Nome, Cognome) VALUES
('Dante','Alighieri')"
objCmd.ActiveConnection = objCon
objCmd.CommandText = strSql
objCmd.CommandType = adCmdText
objCmd.Execute intNrOfRecords
Set objCmd = Nothing
objCon.Close
Set objCon = Nothing
Response.Write "Numero di record inseriti: " & intNrOfRecords
%>
In questo caso è stato aggiunto un record al nostro database che contiene una tabella Utenti con i campi Nome e Cognome. L'operazione è stata effettuata direttamente con un comando INSERT INTO del linguaggio SQL. Una cosa da notare è che il metodo Execute, seguito dal nome di una variabile da noi creata, è in grado di dirci quanti record sono stati interessati dalla nostra operazione. Per compiere operazioni di modifica o cancellazione, si fa sempre riferimento a comandi SQL, ovvero UPDATE e DELETE. Vediamo un paio di esempi:
<!--#include
file="percorso/adovbs.inc"-->
<%
Dim path, objCon, objCmd, strSql, intNrOfRecords
path = "percorso\nomefile.mdb"
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &
server.MapPath(path)
Set objCmd = Server.CreateObject("ADODB.Command")
strSql = "UPDATE Utenti SET Nome = 'Giovanni', Cognome = 'Pascoli'
WHERE Cognome = 'Alighieri'"
objCmd.ActiveConnection = objCon
objCmd.CommandText = strSql
objCmd.CommandType = adCmdText
objCmd.Execute intNrOfRecords
Set objCmd = Nothing
objCon.Close
Set objCon = Nothing
Response.Write "Numero di record modificati: " &
intNrOfRecords
%>
<!--#include
file="percorso/adovbs.inc"-->
<%
Dim path, objCon, objCmd, strSql, intNrOfRecords
path = "percorso\nomefile.mdb"
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &
server.MapPath(path)
Set objCmd = Server.CreateObject("ADODB.Command")
strSql = "DELETE
FROM Utenti WHERE Cognome = 'Pascoli'"
objCmd.ActiveConnection = objCon
objCmd.CommandText = strSql
objCmd.CommandType = adCmdText
objCmd.Execute intNrOfRecords
Set objCmd = Nothing
objCon.Close
Set objCon = Nothing
Response.Write "Numero di record cancellati: " &
intNrOfRecords
%>
Nel primo caso abbiamo modificato il o i record nel cui campo cognome era presente Alighieri e abbiamo sostituito con Giovanni Pascoli, nel secondo caso invece abbiamo cancellato il o i record nel cui campo cognome era presente Pascoli.
Per concludere si può dire che anche l'oggetto Command è in grado di restituire dei recordset, oltre che apportare modifiche, così come l'oggetto Recordset può permettere di apportare modifiche ad un database, dipende da come un programmatore si abitua a lavorare. Per un elenco completo di esempi e caratteristiche di tutto il linguaggio, sarebbe comunque meglio fare riferimento a documentazione ufficiale Microsoft o ad un buon manuale.
