sp_OACreate (Transact-SQL)
Bir OLE nesnesinin bir örneğini oluşturur.
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
See Also