Aracılığıyla paylaş


sp_OACreate (Transact-SQL)

ole nesnesinin bir örnek oluşturur.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

sp_OACreate { progid | clsid } , objecttoken OUTPUT [ , context ] 

Bağımsız değişkenler

  • progid
    ole nesnesi oluşturmak için programlama kimliğini (ProgID) ' dir.Bu karakter dize ole nesnesi sınıfını tanımlar ve formu vardır: 'OLEComponent.Nesne'

    OLEComponent ole Otomasyon sunucusu bileşeni adıdır ve nesne ole nesnesinin adıdır.Belirtilen ole nesnesi geçerli olmalı ve desteklemelidir IDispatch arabirim.

    Örneğin, sqldmo.ProgID, SQL- dmo SQLServer olan SQLServer nesne.SQL- dmo sqldmo, bir bileşen adı olan SQLServer geçerli nesne ve (ister tüm SQL- dmo nesneleri) SQLServer nesnesi IDispatch.

  • clsid
    Sınıf tanımlayıcısı (CLSID) oluşturmak için ole nesnesidir.Bu karakter dize ole nesnesi sınıfını tanımlar ve formu vardır: ' {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}'.Belirtilen ole nesnesi geçerli olmalı ve desteklemelidir IDispatch arabirim.

    Örneğin, {00026BA1-0000-0000-C000-000000000046} SQL- dmo sebebidir SQLServer nesne.

  • objecttokenÇIKIŞ
    Döndürülen nesne belirteci ve yerel bir değişken veri türü olmalıdır, int.Bu nesne belirteci oluşturulmuş ole nesnesini tanımlar ve diğer saklanan Otomasyonu yordamları çağrıları kullanılır.

  • context
    Yeni oluşturulan bir ole nesnesi çalıştığı yürütme içeriği belirtir.Belirtilmişse, bu değer aşağıdakilerden biri olmalıdır:

    1 = Yalnızca işlem içi (.dll) ole sunucusu.

    4 = Yerel (.exe) ole sunucusu yalnızca.

    5 = İzin işlemi hem yerel ole sunucusu

    Belirtilmezse, varsayılan değer olan 5.Bu değer olarak geçirilen dwClsContext çağırma parametresi CoCreateInstance.

    İşlemdeki ole sunucusu izin verilmişse (içerik değeri kullanarak 1 veya 5 veya bir içerik değeri belirterek değil), bellek erişimi vardır ve diğer kaynakların sahibi SQL Server.İşlemdeki ole sunucusu zarar verebilir SQL Server bellek veya kaynakları ve neden beklenmeyen sonuçlar, gibi bir SQL Server erişim ihlali.

    Ne zaman belirttiğiniz içerik değeri 4, yerel ole sunucusu erişiminiz yok SQL Server kaynaklar ve bunu yapamazsınız zarar SQL Server bellek veya kaynak.

    Not

    Bu saklı yordam parametreleri konuma göre değil adıyla belirtilir.

Dönüş Kodu Değerleri

0 (başarılı) veya ole Otomasyon nesne tarafından döndürülen hresult tamsayı değeri sıfır olmayan bir sayı (hata).

hresult yanıt kodları hakkında daha fazla bilgi için bkz: ole Otomasyon dönüş kodları ve hata bilgileri.

Açıklamalar

ole Otomasyon yordamlar etkinleştirilirse, çağrı sp_OACreate ole Otomasyonu paylaşılan Yürütme Ortamı başlayacaktır.ole Otomasyon etkinleştirme hakkında daha fazla bilgi için bkz: OLE Otomasyon yordamlar seçeneği.

Sonunda otomatik olarak oluşturulmuş ole nesne yok edilir Transact-SQL deyim toplu iş.

İzinler

Üyelik gerektiren sysadmin sabit sunucu rolü.

Örnekler

A.ProgID kullanma

Aşağıdaki örnek, SQL- dmo oluşturur SQLServer onun ProgID'sine kullanarak nesne.

DECLARE @object int;
DECLARE @hr int;
DECLARE @src varchar(255), @desc varchar(255);
EXEC @hr = sp_OACreate 'SQLDMO.SQLServer', @object OUT;
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT 
   raiserror('Error Creating COM Component 0x%x, %s, %s',16,1, @hr, @src, @desc)
    RETURN
END;
GO

B.CLSID kullanma

Aşağıdaki örnek, SQL- dmo oluşturur SQLServer , CLSID kullanılarak nesne.

DECLARE @object int;
DECLARE @hr int;
DECLARE @src varchar(255), @desc varchar(255;)
EXEC @hr = sp_OACreate '{00026BA1-0000-0000-C000-000000000046}',
    @object OUT;
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT 
   raiserror('Error Creating COM Component 0x%x, %s, %s',16,1, @hr, @src, @desc)
    RETURN
END;
GO