Oggetti di automazione OLE in Transact-SQLOLE Automation Objects in Transact-SQL

Transact-SQLTransact-SQL include varie stored procedure di sistema che consentono di fare riferimento agli oggetti di automazione OLE in batch, stored procedure e trigger Transact-SQLTransact-SQL . includes several system stored procedures that allow OLE Automation objects to be referenced in Transact-SQLTransact-SQL batches, stored procedures, and triggers. Queste stored procedure di sistema vengono eseguite come stored procedure estese e gli oggetti di automazione OLE eseguiti tramite tali stored procedure vengono eseguiti nello spazio degli indirizzi di un'istanza del Motore di database di SQL ServerSQL Server Database Engine esattamente come le stored procedure estese.These system stored procedures run as extended stored procedures, and the OLE Automation objects that are executed through the stored procedures run in the address space of an instance of the Motore di database di SQL ServerSQL Server Database Engine in the same way that an extended stored procedure runs.

Le stored procedure di automazione OLE consentono di fare riferimento in batch Transact-SQLTransact-SQL a oggetti SQL-DMO e a oggetti di automazione OLE personalizzati, ad esempio gli oggetti che espongono l'interfaccia IDispatch .The OLE Automation stored procedures enable Transact-SQLTransact-SQL batches to reference SQL-DMO objects and custom OLE Automation objects, such as objects that expose the IDispatch interface. Un server OLE in-process personalizzato creato in MicrosoftMicrosoft Visual BasicVisual Basic deve includere un gestore degli errori, specificato con l'istruzione On Error GoTo , per le subroutine Class_Initialize e Class_Terminate .A custom in-process OLE server that is created by using MicrosoftMicrosoft Visual BasicVisual Basic must have an error handler (specified with the On Error GoTo statement) for the Class_Initialize and Class_Terminate subroutines. Gli errori non gestiti nelle subroutine Class_Initialize e Class_Terminate possono provocare errori imprevedibili, ad esempio una violazione dell'accesso in un'istanza del Motore di databaseDatabase Engine.Unhandled errors in the Class_Initialize and Class_Terminate subroutines can cause unpredictable errors, such as an access violation in an instance of the Motore di databaseDatabase Engine. È consigliabile disporre inoltre dei gestori degli errori per altre subroutine.Error handlers for other subroutines are also recommended.

Per usare un oggetto di automazione OLE in Transact-SQLTransact-SQL , prima di tutto è necessario chiamare la stored procedure di sistema sp_OACreate per creare un'istanza dell'oggetto nello spazio degli indirizzi del Motore di databaseDatabase Engine.The first step when using an OLE Automation object in Transact-SQLTransact-SQL is to call the sp_OACreate system stored procedure to create an instance of the object in the address space of the instance of the Motore di databaseDatabase Engine.

Richiamare quindi le stored procedure seguenti per utilizzare le proprietà, i metodi e le informazioni sugli errori dell'oggetto:After an instance of the object has been created, call the following stored procedures to work with the properties, methods, and error information related to the object:

  • sp_OAGetProperty recupera il valore di una proprietà.sp_OAGetProperty obtains the value of a property.

  • sp_OASetProperty imposta il valore di una proprietà.sp_OASetProperty sets the value of a property.

  • sp_OAMethod chiama un metodo.sp_OAMethod calls a method.

  • sp_OAGetErrorInfo recupera informazioni sugli errori più recenti.sp_OAGetErrorInfo obtains the most recent error information.

    Quando l'oggetto non è più necessario, chiamare sp_OADestroy per deallocare l'istanza dell'oggetto creata con sp_OACreate.When there is no more need for the object, call sp_OADestroy to deallocate the instance of the object created by using sp_OACreate.

    Gli oggetti di automazione OLE restituiscono dati tramite valori e metodi di proprietà.OLE Automation objects return data through property values and methods. sp_OAGetProperty e sp_OAMethod restituiscono questi valori dei dati sotto forma di set di risultati.sp_OAGetProperty and sp_OAMethod return these data values in the form of a result set.

    L'ambito di un oggetto di automazione OLE è il batch.The scope of an OLE Automation object is a batch. Tutti i riferimenti all'oggetto devono essere inclusi in un unico batch, stored procedure o trigger.All references to the object must be contained in a single batch, stored procedure, or trigger.

    Gli oggetti di automazione OLE di SQL ServerSQL Server supportano l'attraversamento dell'oggetto a cui fanno riferimento per accedere agli altri oggetti che contiene.When it references objects, the SQL ServerSQL Server OLE Automation objects support traversing the referenced object to other objects that it contains. Se, ad esempio, si usa l'oggetto SQL-DMO di SQLServer , è possibile fare riferimento ai database e alle tabelle disponibili in tale server.For example, when using the SQL-DMO SQLServer object, references can be made to databases and tables contained on that server.

Sintassi della gerarchia degli oggetti (Transact-SQL)Object Hierarchy Syntax (Transact-SQL)

Configurazione superficie di attaccoSurface Area Configuration

Opzione di configurazione del server Ole Automation ProceduresOle Automation Procedures Server Configuration Option

sp_OACreate (Transact-SQL)sp_OACreate (Transact-SQL)

sp_OAGetProperty (Transact-SQL)sp_OAGetProperty (Transact-SQL)

sp_OASetProperty (Transact-SQL)sp_OASetProperty (Transact-SQL)

sp_OAMethod (Transact-SQL)sp_OAMethod (Transact-SQL)

sp_OAGetErrorInfo (Transact-SQL)sp_OAGetErrorInfo (Transact-SQL)

sp_OADestroy (Transact-SQL)sp_OADestroy (Transact-SQL)