獲取 OLE 對(duì)象的屬性值。
sp_OAGetProperty objecttoken,
propertyname
[, propertyvalue OUTPUT]
[, index...]
objecttoken
是先前用 sp_OACreate 創(chuàng)建的 OLE 對(duì)象令牌。
propertyname
是要返回的 OLE 對(duì)象的屬性名。
propertyvalue OUTPUT
是返回的屬性值。如果指定,那么它必須是適當(dāng)數(shù)據(jù)類型的局部變量。
如果屬性返回 OLE 對(duì)象,那么 propertyvalue 必須是數(shù)據(jù)類型為 int 的局部變量。對(duì)象令牌將保存在該局部變量中,并且可由其它 OLE 自動(dòng)化存儲(chǔ)過(guò)程使用。
如果屬性返回單個(gè)值,那么或者為 propertyvalue 指定一個(gè)局部變量,以在該局部變量中返回屬性值,或者不指定 propertyvalue,以單列、單行結(jié)果集的形式將屬性值返回給客戶端。
當(dāng)屬性返回?cái)?shù)組時(shí),如果指定了 propertyvalue,那么該值將被設(shè)置為 NULL。
如果指定了 propertyvalue,但屬性不返回值,那么將出現(xiàn)錯(cuò)誤。如果屬性返回二維以上的數(shù)組,也將出現(xiàn)錯(cuò)誤。
索引
是索引參數(shù)。如果指定,那么它必須是適當(dāng)數(shù)據(jù)類型的值。
一些屬性帶有參數(shù)。這些屬性稱為索引化屬性,其參數(shù)被稱為索引參數(shù)。一個(gè)屬性可有多個(gè)索引參數(shù)。
說(shuō)明 此存儲(chǔ)過(guò)程的參數(shù)按位置指定,而不是按名稱。
0(成功)或非零數(shù)字(失?。怯?OLE 自動(dòng)化對(duì)象返回的 HRESULT 的整數(shù)值。
有關(guān) HRESULT 返回代碼的更多信息,請(qǐng)參見 OLE 自動(dòng)化返回代碼和錯(cuò)誤信息。
如果屬性返回一維或二維數(shù)組,那么該數(shù)組將作為結(jié)果集返回給客戶端:
當(dāng)屬性返回值或方法返回值是數(shù)組時(shí),sp_OAGetProperty 或 sp_OAMethod 將向客戶端返回結(jié)果集。(方法輸出參數(shù)不能是數(shù)組。)這些過(guò)程掃描數(shù)組中的所有數(shù)據(jù)值,以便為該結(jié)果集的每一列確定正確的 Microsoft® SQL Server™ 數(shù)據(jù)類型和數(shù)據(jù)長(zhǎng)度。對(duì)于某個(gè)特定的列,這些過(guò)程將使用表示該列中的所有數(shù)據(jù)值所需要的數(shù)據(jù)類型和長(zhǎng)度。
當(dāng)一列中的所有數(shù)據(jù)值都具有相同的數(shù)據(jù)類型時(shí),此數(shù)據(jù)類型將用于整個(gè)列。當(dāng)一列中的數(shù)據(jù)值使用不同的數(shù)據(jù)類型時(shí),將按下面的圖表選擇整個(gè)列的數(shù)據(jù)類型。
int | float | money | datetime | varchar | nvarchar | |
---|---|---|---|---|---|---|
int | int | float | money | varchar | varchar | nvarchar |
float | float | float | money | varchar | varchar | nvarchar |
money | money | money | money | varchar | varchar | nvarchar |
datetime | varchar | varchar | varchar | datetime | varchar | nvarchar |
varchar | varchar | varchar | varchar | varchar | varchar | nvarchar |
nvarchar | nvarchar | nvarchar | nvarchar | nvarchar | nvarchar | nvarchar |
也可用 sp_OAMethod 來(lái)獲取屬性值。
只有 sysadmin 固定服務(wù)器角色的成員才能執(zhí)行 sp_OAGetProperty。
下面的示例獲取 HostName 屬性(屬于先前創(chuàng)建的 SQLServer 對(duì)象)并將其存儲(chǔ)在局部變量中。
DECLARE @property varchar(255)
EXEC @hr = sp_OAGetProperty @object, 'HostName', @property OUT
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
PRINT @property
下面的示例獲取 HostName 屬性(屬于先前創(chuàng)建的 SQLServer 對(duì)象)并將其作為結(jié)果集返回給客戶端。
EXEC @hr = sp_OAGetProperty @object, 'HostName'
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
相關(guān)文章