Aracılığıyla paylaş


sp_OAMethod (Transact-SQL)

Şunlar için geçerlidir: SQL Server

OLE nesnesinin yöntemini çağırır.

Transact-SQL söz dizimi kuralları

Sözdizimi

sp_OAMethod objecttoken , methodname
    [ , returnvalue OUTPUT ]
    [ , [ @parametername = ] parameter [ OUTPUT ] [ ...n ] ]
[ ; ]

Tartışmalar

Önemli

Genişletilmiş saklı yordamlar için bağımsız değişkenler, Sözdizimi bölümünde açıklandığı gibi belirli bir sırada girilmelidir. Parametreler sıra dışı girilirse bir hata iletisi oluşur.

objecttoken

Daha önce kullanılarak sp_OACreateoluşturulmuş bir OLE nesnesinin nesne belirteci.

methodname

Çağrılacak OLE nesnesinin yöntem adı.

returnvalue ÇIKTI

OLE nesnesinin yönteminin dönüş değeri. Belirtilirse, uygun veri türünün yerel bir değişkeni olmalıdır.

Yöntem tek bir değer döndürürse:

  • returnvalue için, yerel değişkende yöntem dönüş değerini döndüren bir yerel değişken belirtin; veya
  • yöntem dönüş değerini istemciye tek sütunlu, tek satırlı sonuç kümesi olarak döndüren returnvalue değerini belirtmeyin.

Yöntem dönüş değeri bir OLE nesnesiyse , returnvalueint veri türünün yerel bir değişkeni olmalıdır. Nesne belirteci yerel değişkende depolanır ve bu nesne belirteci diğer OLE Otomasyonu saklı yordamlarıyla kullanılabilir.

Yöntem dönüş değeri bir dizi olduğunda, returnvalue belirtilirse olarak ayarlanır NULL.

Aşağıdakilerden herhangi biri oluştuğunda bir hata oluşur:

  • returnvalue belirtilir, ancak yöntem bir değer döndürmez.
  • yöntemi, ikiden fazla boyutu olan bir dizi döndürür.
  • yöntemi bir diziyi çıkış parametresi olarak döndürür.

[ @parametername = ] parametresi [ OUTPUT ]

Yöntem parametresi. Belirtilirse , parametre uygun veri türünün bir değeri olmalıdır.

Bir çıkış parametresinin dönüş değerini almak için parametrenin uygun veri türünün yerel değişkeni olması ve OUTPUT belirtilmesi gerekir. Sabit bir parametre belirtilirse veya belirtilmezse OUTPUT , çıkış parametresinden döndürülen değerler yoksayılır.

Belirtilirse parametername , Microsoft Visual Basic adlandırılmış parametresinin adı olmalıdır. @parametername Transact-SQL bir yerel değişken değildir. at işareti (@) kaldırılır ve parametre adı ole nesnesine parametre adı olarak geçirilir. Tüm konumsal parametreler belirtildikten sonra tüm adlandırılmış parametreler belirtilmelidir.

n

Birden çok parametrenin belirtilebileceğini gösteren yer tutucu.

Uyarı

@parametername belirtilen yöntemin bir parçası olduğundan ve nesnesine geçirildiğinden adlandırılmış bir parametre olabilir. Bu saklı yordamın diğer parametreleri ada göre değil konuma göre belirtilir.

Dönüş kodu değerleri

0 (başarı) veya OLE Otomasyonu nesnesi tarafından döndürülen HRESULT'un tamsayı değeri olan sıfır olmayan bir sayı (hata).

HRESULT dönüş kodları, OLE otomasyonu dönüş kodları ve hata bilgileri hakkında daha fazla bilgi için.

Sonuç kümesi

Yöntem dönüş değeri bir veya iki boyutu olan bir diziyse, sonuç kümesi olarak dizi istemciye döndürülür:

  • Tek boyutlu bir dizi, dizideki öğeler kadar çok sütun içeren tek satırlı sonuç kümesi olarak istemciye döndürülür. Başka bir deyişle, dizi olarak döndürülür (sütunlar).

  • İki boyutlu bir dizi, dizinin ilk boyutunda öğeler olduğu kadar çok sütun içeren ve dizinin ikinci boyutunda öğe olan sayıda satır içeren bir sonuç kümesi olarak istemciye döndürülür. Başka bir deyişle, dizi olarak döndürülür (sütunlar, satırlar).

Özellik dönüş değeri veya yöntem dönüş değeri bir dizi sp_OAGetProperty olduğunda veya sp_OAMethod istemciye bir sonuç kümesi döndürdüğünde. (Yöntem çıkış parametreleri dizi olamaz.) Bu yordamlar, sonuç kümesindeki her sütun için kullanılacak uygun SQL Server veri türlerini ve veri uzunluklarını belirlemek için dizideki tüm veri değerlerini tarar. Belirli bir sütun için bu yordamlar, söz konusu sütundaki tüm veri değerlerini temsil etmek için gereken veri türünü ve uzunluğunu kullanır.

Bir sütundaki tüm veri değerleri aynı veri türünü paylaştığında, bu veri türü sütunun tamamı için kullanılır. Bir sütundaki veri değerleri farklı veri türlerinde olduğunda, tüm sütunun veri türü aşağıdaki grafiğe göre seçilir.

Int yüzmek para tarih/zaman Varchar Belediyesi nvarchar
Int Int yüzmek para varchar varchar nvarchar
yüzmek yüzmek yüzmek para varchar varchar nvarchar
para para para para varchar varchar nvarchar
tarih ve saat varchar varchar varchar tarih ve saat varchar nvarchar
varchar varchar varchar varchar varchar varchar nvarchar
nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar

Açıklamalar

Özellik değeri almak için de kullanabilirsiniz sp_OAMethod .

İzinler

Sysadmin sabit sunucu rolüne üyelik veya doğrudan bu saklı yordamda yürütme izni gerektirir. OLE Otomasyonu ile ilgili herhangi bir sistem yordamını kullanmak için Ole Automation Yordamları sunucu yapılandırma seçeneğinin etkinleştirilmesi gerekir.

Örnekler

A. Yöntem çağırma

Aşağıdaki örnek, daha önce oluşturulan Connect nesnesinin yöntemini çağırır. değerini güçlü bir parolayla değiştirin <password> .

EXECUTE
    @hr = sp_OAMethod
    @object,
    'Connect',
    NULL,
    'my_server',
    'my_login',
    '<password>';

IF @hr <> 0
BEGIN
    EXECUTE sp_OAGetErrorInfo @object;
    RETURN;
END

B. Özellik alma

Aşağıdaki örnek, özelliğini (daha önce oluşturulan HostName nesnenin) alır SQLServer ve yerel bir değişkende depolar.

DECLARE @property AS VARCHAR (255);

EXECUTE
    @hr = sp_OAMethod
    @object, 'HostName',
    @property OUTPUT;

IF @hr <> 0
BEGIN
    EXECUTE sp_OAGetErrorInfo @object;
    RETURN;
END

PRINT @property;