OLE-Automatisierungsobjekte in Transact-SQL

Transact-SQL enthält mehrere gespeicherte Systemprozeduren, die Verweise auf OLE-Automatisierungsobjekte in Transact-SQL-Batches, gespeicherten Prozeduren und Triggern ermöglichen. Diese gespeicherten Systemprozeduren werden als erweiterte gespeicherte Prozeduren ausgeführt, und die OLE-Automatisierungsobjekte, die über die gespeicherten Prozeduren ausgeführt werden, werden wie eine erweiterte gespeicherte Prozedur im Adressraum einer Instanz von SQL Server Database Engine (Datenbankmodul) ausgeführt.

Die gespeicherten OLE-Automatisierungsprozeduren ermöglichen es Transact-SQL-Batches, auf SQL-DMO-Objekte und benutzerdefinierte OLE-Automatisierungsobjekte zu verweisen, wie etwa Objekte, die die IDispatch-Schnittstelle verfügbar machen. Ein benutzerdefinierter In-Process-OLE-Server, der mithilfe von MicrosoftVisual Basic erstellt wurde, muss mit einem (mit der On Error GoTo-Anweisung angegebenen) Fehlerhandler für die Unterroutinen Class_Initialize und Class_Terminate ausgestattet sein. Nicht behandelte Fehler in den Unterroutinen Class_Initialize und Class_Terminate können unvorhersehbare Fehler, wie z. B. eine Zugriffsverletzungen in einer Instanz von Database Engine (Datenbankmodul), verursachen. Fehlerhandler werden auch für andere Unterroutinen empfohlen.

Der erste Schritt beim Verwenden eines OLE-Automatisierungsobjekts in Transact-SQL ist das Aufrufen der gespeicherten Systemprozedur sp_OACreate, um eine Instanz des Objekts im Adressraum der Instanz von Database Engine (Datenbankmodul) zu erstellen.

Verwenden Sie nach dem Erstellen einer Instanz des Objekts die folgenden gespeicherten Prozeduren, um mit den Eigenschaften, Methoden und Fehlerinformationen im Zusammenhang mit dem Objekt zu arbeiten:

  • sp_OAGetProperty ruft den Wert einer Eigenschaft ab.

  • sp_OASetProperty legt den Wert einer Eigenschaft fest.

  • sp_OAMethod ruft eine Methode auf.

  • sp_OAGetErrorInfo ruft die letzten Fehlerinformationen ab.

Wenn das Objekt nicht mehr benötigt wird, rufen Sie sp_OADestroy auf, um die Zuordnung der mit sp_OACreate erstellte Instanz des Objekts aufzuheben.

OLE-Automatisierungsobjekte geben Daten über Eigenschaftswerte und Methoden zurück. sp_OAGetProperty und sp_OAMethod geben diese Datenwerte in Form eines Resultsets zurück.

Der Gültigkeitsbereich eines OLE-Automatisierungsobjekts ist ein Batch. Alle Verweise auf das Objekt müssen in einem einzelnen Batch, einer gespeicherten Prozedur oder einem Trigger enthalten sein.

Beim Verweisen auf Objekte unterstützen die SQL Server-OLE-Automatisierungsobjekte das Traversieren des Objekts, auf das verwiesen wird, auf andere Objekte, die es enthält. Wenn beispielsweise das SQL-DMO-Objekt SQLServer verwendet wird, können Verweise auf Datenbanken und Tabellen erfolgen, die sich auf dem betreffenden Server befinden.