Condividi tramite


Oggetto Command (ADO)

Definisce un comando specifico che si intende eseguire su un'origine dati.

Osservazioni:

Usare un oggetto Command per eseguire query su un database e restituire record in un oggetto Recordset, per eseguire un'operazione in blocco o per modificare la struttura di un database. A seconda della funzionalità del provider, con alcune raccolte, alcuni metodi e alcune proprietà di Command viene generato un errore quando vengono usate come riferimento.

Con le raccolte, i metodi e le proprietà di un oggetto Command, è possibile eseguire le operazioni seguenti:

  • Definire il testo eseguibile del comando , ad esempio un'istruzione SQL, con la proprietà CommandText . In alternativa, per le strutture di comando o di query diverse da stringhe semplici, ad esempio, query di modello XML, definire il comando con la proprietà CommandStream.

  • Facoltativamente, indicare il dialetto del comando usato nella proprietà CommandText o CommandStream con la proprietà Dialect.

  • Definire le query con parametri o gli argomenti della stored procedure con gli oggetti Parameter e la raccolta Parameters.

  • Indicare se i nomi dei parametri devono essere passati al provider con la proprietà NamedParameters.

  • Eseguire un comando e restituire un oggetto Recordset, se appropriato, con il metodo Execute.

  • Specificare il tipo di comando con la proprietà CommandType prima dell'esecuzione per ottimizzare le prestazioni.

  • Controllare se il provider salva una versione preparata (o compilata) del comando prima dell'esecuzione con la proprietà Prepared.

  • Impostare il numero di secondi per cui un provider attenderà l'esecuzione di un comando con la proprietà CommandTimeout.

  • Associare una connessione aperta a un oggetto Command impostando la relativa proprietà ActiveConnection.

  • Impostare la proprietà Name per identificare l'oggetto Command come metodo nell'oggetto Connection associato.

  • Passare un oggetto Command alla proprietà Source di un oggetto Recordset per ottenere i dati.

  • Accedere agli attributi specifici del provider con la raccolta Properties.

Nota

Per eseguire una query senza usare un oggetto Command, passare una stringa di query al metodo Execute di un oggetto Connection oppure al metodo Open di un oggetto Recordset. Tuttavia, è necessario un oggetto Command quando si vuole salvare in modo permanente il testo del comando ed eseguirlo nuovamente oppure usare i parametri di query.

Per creare un oggetto Command indipendentemente da un oggetto Connection definito in precedenza, impostare la proprietà ActiveConnection su una stringa di connessione valida. ADO crea comunque un oggetto Connection, ma non lo assegna a una variabile oggetto. Tuttavia, se si associano più oggetti Command con la stessa connessione, è necessario creare e aprire in modo esplicito un oggetto Connection. In questo modo l'oggetto Connection viene assegnato a una variabile oggetto. Assicurarsi che l'oggetto Connection sia stato aperto correttamente prima di assegnarlo alla proprietà ActiveConnection dell'oggetto Command, perché l'assegnazione di un oggetto Connection chiuso genera un errore. Se non si imposta la proprietà ActiveConnection dell'oggetto Command su questa variabile oggetto, ADO crea un nuovo oggetto Connection per ogni oggetto Command, anche se si usa la stessa stringa di connessione.

Per eseguire un oggetto Command, chiamarlo in base alla relativa proprietà Name nell'oggetto Connection associato. La proprietà ActiveConnection dell'oggetto Command deve essere impostata sull'oggetto Connection. Se per Command sono presenti parametri, passarne i valori come argomenti del metodo.

Se due o più oggetti Command vengono eseguiti nella stessa connessione e un oggetto Command è una stored procedure con parametri di output, si verifica un errore. Per eseguire ogni oggetto Command, usare connessioni separate o disconnettere tutti gli altri oggetti Command dalla connessione.

La raccolta Parameters è il membro predefinito dell'oggetto Command. Di conseguenza, le due istruzioni di codice seguenti sono equivalenti.

objCmd.Parameters.Item(0)  
objCmd(0)  
  • L'oggetto Command non è sicuro per lo scripting.

In questa sezione viene trattato l'argomento seguente.

Vedi anche

Oggetto Connection (ADO)
Raccolta di parametri (ADO)
Raccolta delle proprietà (ADO)
Appendice A: Provider