Un insieme Parameters contiene
tutti gli oggetti
Parameter
relativi ad un oggetto
Command. 
Utilizzando il metodo
Refresh
sull'insieme 
Parameters di un oggetto
Command
vengono recuperate informazioni sui parametri del provider per la 
stored procedure o la query con parametri specificata nell'oggetto
Command. 
Alcuni provider non supportano chiamate a stored procedure o a query 
con parametri, pertanto verra' restituito un errore se si richiama 
il metodo
Refresh
sull'insieme
Parameters
utilizzando uno di questi provider. 
Se non sono stati definiti oggetti
Parameter
personalizzati e si accede all'insieme
Parameters
prima di richiamare il metodo
Refresh,
ADO richiamera' automaticamente il metodo e compilera' l'insieme. 
Se si conoscono le proprieta' dei parametri associati alla stored 
procedure o alla query con parametri da richiamare, e' possibile 
ridurre al minimo le chiamate al provider al fine di ottimizzare le 
prestazioni. Utilizzare il metodo
CreateParameter
per creare oggetti
Parameter
con le impostazioni di proprieta' appropriate e utilizzare il metodo
Append
per aggiungerli all'insieme
Parameters.
In tal modo sara' possibile impostare e restituire valori di parametri 
senza richiamare il provider per ottenere informazioni sui parametri.
Se si scrive su un provider che non fornisce informazioni sui parametri,
sara' necessario compilare manualmente l'insieme
Parameters
utilizzando questo metodo in modo da poter utilizzare i parametri. 
 
Utilizzare il metodo
Delete
per rimuovere gli oggetti
Parameter
dall'insieme qualora necessario. 
Torna alla mappa 
 
 
| 
 
Count
 
 | 
 
Indica il numero di oggetti contenuti nell'insieme. e' una proprieta' 
di sola lettura. Se il valore restituito e' pari a 0, l'insieme e' 
vuoto e non contiene nessun oggetto. 
Nota: 
La numerazione degli oggetti nell'insieme parte da 0 e non da 1. 
 | 
 
 
 
 
| 
 
Append
 
 | 
 
Accoda un nuovo oggetto all'insieme. 
Sintassi
 
command.Parameters.Append oggetto
 
command Rappresenta l'oggetto 
Command
su cui si sta' operando. 
oggetto e' il nuovo oggetto
Parameter da aggiungere. 
Descrivendo il parametro autonomamente, e' possibile ridurre il 
numero di chiamate al provider e di conseguenza migliorare le 
prestazioni quando si utilizzano stored procedure o query con 
parametri. E' tuttavia necessario conoscere le proprieta' dei 
parametri associati alla stored procedure o alla query con parametri 
che si desidera chiamare. 
Utilizzare il metodo
Command.CreateParameter
per creare gli oggetti
Parameter
con le proprieta' impostate adeguatamente prima di usare
Append.
 
In questo modo, e' possibile impostare e restituire i valori senza 
dovere chiamare il provider per le informazioni necessarie. Se si 
chiama un provider che non fornisce informazioni relative ai parametri,
sara' necessario compilare manualmente l'insieme
Parameters
utilizzando questo metodo per potere utilizzare i parametri. 
 | 
 
| 
 
Delete
 
 | 
 
Elimina un oggetto dall'insieme. 
Sintassi
 
command.Parameters.Delete indice
 
command  e' l'oggetto
Command
su cui si sta' operando. 
indice e' il nome dell'oggetto che si desidera eliminare o 
il suo numero ordinale. 
Osservazioni 
Utilizzando Delete su un insieme si
rimuove uno degli oggetti di quell'insieme. 
Quando si chiama Delete e' necessario
utilizzare la proprieta'
Name
dell'oggetto oppure l'indice dell'insieme corrispondente. Una variabile 
oggetto non e' un argomento valido. 
 | 
 
| 
 
Item
 
 | 
 
Restituisce un membro specifico dell'insieme in base al nome o al 
numero ordinale. 
Sintassi
 
oggetto = command.Parameters.Item( indice )
 
oggetto e' la variabile Parameter
che ricevera' l'oggetto richiesto 
command e' l'oggetto
Command
su cui si sta' operando 
indice e' il nome o il numero ordinale dell'oggetto da 
reperire. 
Osservazioni 
Utilizzare Item per reperire 
un oggetto specifico nell'insieme. Se non e' possibile trovare 
nell'insieme un oggetto corrispondente all'argomento indice, 
si verifichera' un errore. 
Item e' il metodo predefinito 
per tutti gli insiemi, quindi e' possibile utilizzare anche la 
forma "ridotta" del metodo.
 
oggetto = command.Parameters(indice)
 
 | 
 
| 
 
Refresh
 
 | 
 
Aggiorna gli oggetti dell'insieme in modo che corrispondano agli oggetti
specifici disponibili presso il provider. 
Sintassi
 
command.Parameters.Refresh
 
command e' l'oggetto
Command
su cui si sta' operando 
Osservazioni 
Utilizzando Refresh e' possibile 
recuperare le informazioni sui parametri sul lato provider per la 
stored procedure o la query con parametri specificata. L'insieme 
risultera' vuoto per i provider che non supportano le chiamate di 
stored procedure o le query con parametri. 
Impostare la proprieta'
ActiveConnection dell'oggetto
Command su un oggetto
Connection
valido, la proprieta'
CommandText
su un comando valido e la proprieta'
CommandType su adCmdStoredProc prima di chiamare 
Refresh. 
Se si accede all'insieme
Parameters prima di chiamare 
Refresh, il metodo verra' chiamato
automaticamente e l'insieme verra' compilato. 
Nota 
Se si utilizza Refresh per 
ottenere informazioni sui parametri dal provider e tale metodo 
restituisce uno o piu' oggetti Parameter con tipo di dati a lunghezza
variabile, e' possibile che venga allocata memoria per i parametri 
in base alla relativa dimensione potenziale massima, causando un 
errore durante l'esecuzione. Per evitare che si verifichino errori, 
e' necessario impostare esplicitamente la proprieta'
Size
per questi parametri prima di chiamare 
Execute. 
 | 
 
 
 
 
L'oggetto Parameter
 
Le informazioni dei singoli parametri possono essere sia scritte che 
lette attraverso lo stesso oggetto Parameter. Ci sono quattro 
tipi di "direzioni" per i singoli parametri: input, output, input 
ed output e valore di ritorno.
 
Un Parameter puo' servire come parametro di input, come 
parametro di output che mantiene delle informazioni o contiene il 
risultato di una Stored Procedure. Il metodo Refresh della 
collection Parameters forza il driver ad aggiornare le
informazioni dei singoli Parametri, tuttavia questo puo' 
impiegare molto tempo. 
Quando stiamo lavorando con dati "long", il metodo AppendChunk 
puo' essere usato per scrivere dati in blocchi. 
Il seguente esempio crea parametri per una Stored Procedure:
La Stored Procedre prende un parametro in input e ritorna un valore 
in output. 
Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
Dim prm As ADODB.Parameter
' Define a Command object for a stored procedure.
cmd.ActiveConnection = "DSN=pubs;uid=sa"
cmd.CommandText = "myADOParaProc"
cmd.CommandType = adCmdStoredProc
cmd.CommandTimeout = 15
' Set up new parameter for the stored procedure.
Set prm = Cmd.CreateParameter("Type", adChar, adParamInput, 12, "Business")
Cmd.Parameters.Append prm
' Create a record set by executing the command.
Set rs = Cmd.Execute
While (Not rs.EOF)
Debug.Print rs(0)
rs.MoveNext
Wend
Dopo che un parametro e' stato specificato, il metodo Append 
e' usato per "attaccare" l'oggetto alla collection. Quando la Stored 
Procedure e' eseguita, il recordset e' creato e ritornato. 
Torna alla mappa 
 
 
| 
 
Attributes
 
 | 
 
Indica una o piu' caratteristiche di un oggetto. 
Questa proprieta' e' di lettura/scrittura e il suo valore puo'
corrispondere alla somma di uno o piu' dei valori riportati nella 
seguente tabella: 
      
- adParamSigned
 
Predefinita. Indica che il parametro accetta valori con segno.  
- adParamNullable
 
Indica che il parametro accetta valori Null. 
- adParamLong
 
Indica che il parametro accetta dati binari lunghi. 
 
Quando si impostano piu' attributi, e' possibile sommare le costanti 
appropriate. Se si imposta il valore della proprieta' su una somma 
che contiene costanti incompatibili, verra' restituito un errore. 
 | 
 
| 
 
Direction
 
 | 
 
Indica se il parametro e' di input, di output o entrambi, oppure se 
e' il valore restituito da una stored procedure. 
I valori possibili sono i seguenti:
 
- adParamUnknown
 
Indica se la direzione del parametro e' sconosciuta. 
- adParamInput
 
Valore predefinito. Indica un parametro di input. 
- adParamOutput
 
Indica un parametro di output. 
- adParamInputOutput
 
Indica sia un parametro di input che di output. 
- adParamReturnValue
 
Indica un valore restituito. 
 
Osservazioni 
Utilizzare la 
Direction per specificare il 
modo in cui un parametro viene passato a o da una procedura. La 
proprieta' e' di lettura/scrittura. In tal modo e' possibile utilizzare 
provider che non restituiscono queste informazioni o impostare le 
informazioni quando non si desidera che venga eseguita un'altra chiamata
al provider per recuperare le informazioni relative ai parametri. 
Non tutti i provider sono in grado di determinare la direzione dei 
parametri nelle relative stored procedure. In questo caso sara' 
necessario impostare la 
Direction prima di eseguire 
la query. 
 | 
 
| 
 
Name
 
 | 
 
Indica il nome del parametro. 
Osservazioni 
Utilizzare questa proprieta' per assegnare o leggere il nome di 
un parametro. Per gli oggetti Parameter non ancora aggiunti all'insieme
Parameters, la proprieta'
e' di lettura/scrittura. Per gli oggetti gia' aggiunti, la proprieta' 
e' di sola lettura. Non e' necessario che i nomi all'interno di un 
insieme siano univoci. 
 | 
 
| 
 
NumericScale
 
 | 
 
Indica la scala dei valori numerici. 
Il valore letto/impostato indica il numero di cifre decimali in base 
a cui verranno risolti i valori numerici. 
 | 
 
| 
 
Precision
 
 | 
 
Indica il grado di precisione dei valori numerici. 
Imposta o restituisce un valore che indica il numero massimo di cifre
utilizzate per rappresentare i valori.
 
 | 
 
| 
 
Size
 
 | 
 
Indica le dimensioni massime di un oggetto Parameter espresse in 
byte o in caratteri. 
Osservazioni 
Utilizzare questa proprieta' per determinare o per fissare le 
dimensioni massime dei valori scritti nella proprieta' 
Value
del parametro. 
Se per un Parameter viene 
specificato un tipo di dati di lunghezza variabile (ad esempio tutti 
i dati di tipo String come
adVarChar), sara' necessario 
impostare la proprieta'
Size dell'oggetto prima di 
accodarla all'insieme
Parameters in modo da evitare 
che si verifichi un errore. 
Se l'oggetto Parameter e' gia' stato
accodato all'insieme Parameters di un
oggetto
Command
e per i dati e' stato specificato il tipo a lunghezza variabile, 
sara' necessario impostare la proprieta' 
Size dell'oggetto Parameter prima 
di eseguire l'oggetto
Command
in modo da evitare che si verifichi un errore. 
Se si utilizza 
Refresh
per ottenere dal provider informazioni sui parametri e vengono 
restituiti oggetti Parameter 
con dati a lunghezza variabile, in ADO la memoria per i parametri 
verra' allocata in base alla rispettiva dimensione potenziale massima 
causando un eventuale errore durante l'esecuzione. 
Per evitare che tale errore si verifichi, e' necessario impostare 
esplicitamente la proprieta' Size per questi parametri prima di eseguire il 
comando. 
 | 
 
| 
 
Type
 
 | 
 
Indica il tipo operativo o il tipo di dato dell'oggetto
Parameter. 
Il valore puo' essere una delle costanti seguenti:
L'indicatore di tipo OLE DB corrispondente e' riportato tra parentesi.
Per ulteriori informazioni sui tipi di dati OLE DB, consultare il 
capitolo 10 e l'appendice A della guida di riferimento per i 
programmatori di OLE DB. 
- adArray
 
Unito in un operatore logico OR a un altro tipo per indicare che i 
dati costituiscono una matrice sicura di quel tipo (DBTYPE_ARRAY). 
- adBigInt
 
Intero con segno da 8 byte (DBTYPE_I8). 
- adBinary
 
Valore binario (DBTYPE_BYTES). 
- adBoolean
 
Valore booleano (DBTYPE_BOOL). 
- adByRef
 
Unito in un operatore logico OR a un altro tipo per indicare che i 
dati costituiscono un puntatore a dati di altro tipo (DBTYPE_BYREF). 
- adBSTR
 
Stringa di caratteri a terminazione Null (Unicode) (DBTYPE_BSTR). 
- adChar
 
Valore String (DBTYPE_STR). 
- adCurrency
 
Valore di valuta (DBTYPE_CY). Si tratta di un numero a virgola 
fissa con quattro cifre a destra della virgola decimale. E'
memorizzato in un intero con segno da 8 byte scalato per 10.000. 
- adDate
 
Valore Date (DBTYPE_DATE). Si tratta di una data memorizzata come 
Double, la cui parte intera rappresenta il numero di giorni a partire 
dal 30 dicembre 1899, mentre la parte frazionaria rappresenta la 
frazione di un giorno. 
- adDBDate
 
Valore data (ggmmaaaa) (DBTYPE_DBDATE). 
- adDBTime
 
Valore tempo (oommss) (DBTYPE_DBTIME). 
- adDBTimeStamp
 
Indicatore data/ora (ggmmaaaaoommss piu' una frazione in 
miliardesimi) (DBTYPE_DBTIMESTAMP). 
- adDecimal
 
Valore numerico esatto con grado di precisione e di scala 
fisso (DBTYPE_DECIMAL). 
- adDouble
 
Valore con virgola mobile in precisione doppia (DBTYPE_R8). 
- adEmpty
 
Non e' stato specificato alcun valore (DBTYPE_EMPTY). 
- adError
 
Codice di errore a 32 bit (DBTYPE_ERROR). 
- adGUID
 
Identificatore univoco globale (GUID) (DBTYPE_GUID). 
- adIDispatch
 
Puntatore a un'interfaccia Idispatch su un oggetto OLE 
(DBTYPE_IDISPATCH). 
- adInteger
 
Intero con segno da 4 byte (DBTYPE_I4). 
- adIUnknown
 
Puntatore a un'interfaccia Iunknown su un oggetto OLE 
(DBTYPE_IUNKNOWN). 
- adLongVarBinary
 
Valore binario lungo (solo oggetto Parameter). 
- adLongVarChar
 
Valore String lungo (solo oggetto Parameter). 
- adLongVarWChar
 
Valore stringa a terminazione Null lungo (solo oggetto Parameter). 
- adNumeric
 
Valore numerico esatto con grado di precisione e di scala fisso 
(DBTYPE_NUMERIC). 
- adSingle
 
Valore con virgola mobile in precisione semplice (DBTYPE_R4). 
- adSmallInt
 
Intero con segno da 2 byte (DBTYPE_I2). 
- adTinyInt
 
Intero con segno da 1 byte (DBTYPE_I1). 
- adUnsignedBigInt
 
Intero senza segno da 8 byte (DBTYPE_UI8). 
- adUnsignedInt
 
Intero senza segno da 4 byte (DBTYPE_UI4). 
- adUnsignedSmallInt
 
Intero senza segno da 2 byte (DBTYPE_UI2). 
- adUnsignedTinyInt
 
Intero senza segno da 1 byte (DBTYPE_UI1). 
- adUserDefined
 
Variabile definita dall'utente (DBTYPE_UDT). 
- adVarBinary
 
Valore binario (solo oggetto Parameter). 
- adVarChar
 
Valore String (solo oggetto Parameter). 
- adVariant
 
Variant di automazione (DBTYPE_VARIANT). 
- adVector
 
Unito in un operatore logico OR a un altro tipo per indicare che i 
dati rappresentano una struttura DBVECTOR, cosi' come viene definita 
da OLE DB, nella quale sono inclusi il conteggio degli elementi e 
un puntatore a dati di altro tipo (DBTYPE_VECTOR). 
- adVarWChar
 
Stringa di caratteri Unicode a terminazione Null (solo oggetto 
Parameter). 
- adWChar
 
Stringa di caratteri Unicode a terminazione Null (DBTYPE_WSTR). 
 
 | 
 
| 
 
Value
 
 | 
 
Indica il valore assegnato all'oggetto Parameter. Il valore predefinito dipende dalla 
proprieta' Type. 
 | 
 
 
 
 
| 
 
AppendChunk
 
 | 
 
Accoda dati a un oggetto Parameter di grandi dimensioni in formato 
testo o binario. 
Sintassi 
parameter.AppendChunk dati
 
parameter Oggetto Parameter su cui si opera 
dati elemento contenente i dati che si desidera accodare.
 
Osservazioni 
Utilizzare AppendChunk su un oggetto
Parameter per inserirvi dati binari 
o letterali lunghi. Nel caso in cui la memoria del sistema sia limitata,
sara' possibile utilizzare AppendChunk per gestire i valori lunghi in blocchi 
anziche' integralmente. 
Se il bit adFldLong nella proprieta'
Attributes e' impostato su True, 
sara' possibile utilizzare AppendChunk per quel parametro. 
La prima chiamata AppendChunk su un
oggetto Parameter consente di 
scrivere dati nel parametro sovrascrivendo i dati esistenti. Le 
successive chiamate consentono invece di aggiungere dati ai dati 
esistenti. Una chiamata
AppendChunk che passa un valore 
nullo elimina tutti i dati del parametro. 
 | 
 
 
 
 
 |