sp_OACreate (Transact-SQL)
ole nesnesinin bir örnek oluşturur.
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
Ayrıca bkz.