Share via


sp_OACreate (Transact-sql)

ole nesnesinin bir örneğini oluşturur.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

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

Bağımsız değişkenler

  • progid
    Programlama (ProgID) oluşturmak için ole nesnesinin tanımlayıcısıdır. Bu karakter dizesi ole nesnesi sınıfını tanımlar ve formu vardır: 'OLEComponent.Object'

    OLEComponentole Otomasyon sunucusu bileşeni adıdır ve Objectole nesnesinin adıdır. Belirtilen ole nesnesi geçerli olmalı ve desteklemelidir IDispatch arabirimi.

    Örneğin, sqldmo.ProgID sql-dmo SQLServer olduğunu SQLServer nesne. sql-dmo vardır sqldmo, bileşenin adını SQLServer geçerli ve (gibi tüm sql-dmo nesneleri), nesne SQLServer nesne destekler IDispatch.

  • clsid
    Sınıf tanımlayıcısı (CLSID) ole nesnesi oluşturmak için olduğunu. Bu karakter dizesi 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 arabirimi.

    Örneğin, sql-dmo CLSID {00026BA1-0000-0000-C000-000000000046} olur SQLServer nesne.

  • objecttokenÇIKIŞ
    Döndürülen nesne belirteci iş 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 ole nesnesinin çalıştığı yürütme içeriği belirtir. Belirtilmişse, bu değer aşağıdakilerden biri olmalıdır:

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

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

    5 = İzin hem işlem hem de yerel ole sunucusu

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

    İşlemdeki ole sunucusu izin verilirse (bağlam 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 tarafından SQL Server. İşlemdeki ole sunucusu zarar verebilir SQL Serverbellek veya kaynak ve neden öngörülemeyen sonuçlar, gibi bir SQL Servererişim ihlali.

    Bağlam değeri belirttiğiniz zaman 4, yerel ole sunucusu erişimi herhangi bir yok SQL ServerKaynaklar ve zarar veremez SQL Serverbellek 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 sıfır olmayan bir sayı (hata) ole Otomasyon nesne tarafından döndürülen hresult tamsayı değeridir.

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ştirildiğinde, çağrı sp_OACreate ole Otomasyonu paylaşılan yürütme ortamı başlar. ole Otomasyon etkinleştirme hakkında daha fazla bilgi için bkz: OLE Otomasyon yordamlar sunucu yapılandırma seçeneği.

Oluşturulan nesnesini otomatik olarak sonunda yok Transact-SQLdeyimi toplu.

İzinler

Üyelik sysadmin sunucu rolü.

Örnekler

A.ProgID kullanma

Aşağıdaki örnek, bir sql-dmo oluşturur SQLServer onun ProgID 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

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, bir 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

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

Ayrıca bkz.

Başvuru

ole Otomasyon depolanan yordamlar (Transact-sql)

ole Otomasyon Örneği Komut dosyası

Kavramlar

OLE Otomasyon yordamlar sunucu yapılandırma seçeneği