Aracılığıyla paylaş


sp_OACreate (Transact-SQL)

Bir OLE nesnesinin bir örneğini oluşturur.

Topic link iconTransact-SQL sözdizimi kuralları

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

Bağımsız değişkenler

  • progid
    OLE nesnesini oluşturmak için program kimliği (ProgID) belirtilir.Bu karakter dizesi OLE nesnesi sınıfını tanımlayan ve aþaðýdaki biçime sahip: 'OLEComponent.nesne '

    OLEComponent bileşen adı OLE Otomasyonu Sunucusu ve addır OLE nesnesini. nesneBelirtilen OLE nesnesinin geçerli olmalı ve desteklemelidirIDispatch arabirim.

    Örneğin, SQL-DMO ProgID'sini olan SQLDMO.SQLServerSQL Server object.SQL-DMO SQLDMO, bileşenin adı olanSQL Server nesne, geçerli ve (tüm SQL-DMO nesnelerini gibi) SQL Server nesne destekler IDispatch .

  • clsid
    Sınıf tanımlayıcısı (CLSID) oluşturmak için OLE, nesnesidir.Bu karakter dizesi OLE nesnesi sınıfını tanımlayan ve aþaðýdaki biçime sahip: ' { nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn } '.Belirtilen OLE nesnesinin geçerli olmalı ve desteklemelidirIDispatch arabirim.

    Örneğin, SQL-DMO CLSID'si olan {00026BA1-0000-0000-C000-000000000046}SQL Server nesne.

  • objecttokenÇıktı:
    Döndürülen belirtecin, iş ve yerel bir değişken veri türünde olmalıdırint.Bu nesne belirteci oluşturulan nesnesini tanımlar ve saklanan Otomasyonu yordamları çağrıları olarak kullanılır.

  • context
    Yeni oluşturulan nesnesini ç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 =

    Değil belirtilmezse, varsayılan değer5.Olarak bu değeri geçendwClsContextyapılan çağrı parametresiCoCreateInstance.

    Bir işlemdeki OLE sunucusu izin verilip verilmediğini (içerik değeri kullanarak 1 veya 5 veya içerik değeri belirterek), bellek erişimi ve diğer kaynaklara ait SQL Server.Bir işlemdeki OLE sunucusu zarar verebilir.SQL Serverbellek veya kaynak ve öngörülemeyen neden olur, örneğin birSQL Servererişim ihlali.

    Belirttiğiniz içerik değeri4SQL Serverolamaz ve kaynakları zarar SQL Serverbellek veya kaynak. erişim yerel bir OLE sunucusu yok

    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ı (hatası).

Yanıt HRESULT kodları hakkında daha fazla bilgi için bkz:OLE Otomasyonu dönüş kodları ve hata bilgileri.

Remarks

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

Sonunda oluşturulan nesnesini otomatik olarak yok edilirTransact-SQLdeyim toplu iş iş.

İzinler

Üyelik gerektirenSistem Yöneticisi sunucu sabit rolü.

Örnekler

C.ProgID kullanma

Aşağıdaki örnek, SQL-DMO oluştururSQL Server kullanarak, ProgID. 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ştururSQL Server kullanarak, CLSID. 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