sp_OAMethod (Transact-SQL)
platí pro:SQL Server
Volá metodu objektu OLE.
Syntax
sp_OAMethod objecttoken , methodname
[ , returnvalue OUTPUT ]
[ , [ @parametername = ] parameter [ OUTPUT ] [ ...n ] ]
[ ; ]
Argumenty
Důležitý
Argumenty rozšířených uložených procedur musí být zadány v určitém pořadí, jak je popsáno v části Syntaxe. Pokud jsou parametry zadány mimo pořadí, dojde k chybové zprávě.
objektu
Token objektu objektu OLE objektu, který byl dříve vytvořen pomocí sp_OACreate
.
název metody
Název metody objektu OLE, který se má volat.
returnvalue OUTPUT
Návratová hodnota metody objektu OLE. Pokud je zadáno, musí se jednat o místní proměnnou příslušného datového typu.
Pokud metoda vrátí jednu hodnotu, buď:
- Zadejte místní proměnnou pro returnvalue, která vrátí návratovou hodnotu metody v místní proměnné; nebo
- nezadávejte returnvalue, která vrací návratovou hodnotu metody klientovi jako jednosloupcovou sadu výsledků s jedním řádkem.
Pokud vrácená hodnota metody je objekt OLE, returnvalue musí být místní proměnnou datového typu int. Token objektu je uložen v místní proměnné a tento token objektu lze použít s jinými uloženými procedurami OLE Automation.
Pokud je vrácená hodnota metody pole, je-li zadána návratová hodnota, je nastavena na NULL
.
Pokud dojde k některé z následujících situací, dojde k chybě:
- je zadána vrácená hodnota, ale metoda nevrací hodnotu.
- Metoda vrátí pole s více než dvěma dimenzemi.
- Metoda vrátí pole jako výstupní parametr.
[ @parametername = ] parametr [ OUTPUT ]
Parametr metody. Pokud je zadán, parametr musí být hodnota příslušného datového typu.
Chcete-li získat návratovou hodnotu výstupního parametru, parametr musí být místní proměnnou příslušného datového typu a musí být zadán OUTPUT
. Pokud je zadán konstantní parametr nebo pokud není zadaný OUTPUT
, bude ignorována jakákoli návratová hodnota z výstupního parametru.
Pokud je zadán, název parametru musí být název pojmenovaného parametru jazyka Microsoft Visual Basic.
@parametername není místní proměnná Transact-SQL. Znak at (@
) se odebere a název parametru se předá objektu OLE jako název parametru. Všechny pojmenované parametry musí být zadány po zadání všech pozičních parametrů.
n
Zástupný symbol označující, že lze zadat více parametrů.
Poznámka
@parametername může být pojmenovaný parametr, protože je součástí zadané metody a předává se objektu. Ostatní parametry pro tuto uloženou proceduru jsou určeny umístěním, nikoli názvem.
Návratové hodnoty kódu
0
(úspěch) nebo nenulové číslo (selhání), které je celočíselná hodnota HRESULT vrácená objektem AUTOMATIZACE OLE.
Další informace o návratových kódech HRESULT návratové kódy automatizace OLE a informace o chybách.
Sada výsledků
Pokud vrácená hodnota metody je matice s jednou nebo dvěma dimenzemi, vrátí se pole klientovi jako sada výsledků:
Jednorozměrné pole se klientovi vrátí jako sada výsledků s jedním řádkem s tolika sloupci, kolik je v poli prvků. Jinými slovy, matice se vrátí jako (sloupce).
Dvojrozměrné pole se klientovi vrátí jako výsledná sada s tolika sloupci, kolik jsou prvky v první dimenzi pole a s tolika řádky, kolik jsou prvky ve druhé dimenzi pole. Jinými slovy, matice se vrátí jako (sloupce, řádky).
Pokud je vrácená hodnota vlastnosti nebo návratová hodnota metody matice, sp_OAGetProperty
nebo sp_OAMethod
vrátí sadu výsledků klienta. (Výstupní parametry metody nemůžou být pole.) Tyto postupy prohledávají všechny datové hodnoty v poli a určují odpovídající datové typy a délky dat SQL Serveru, které se mají použít pro každý sloupec v sadě výsledků. U konkrétního sloupce tyto postupy používají datový typ a délku potřebnou k reprezentaci všech datových hodnot v daném sloupci.
Pokud všechny datové hodnoty ve sloupci sdílejí stejný datový typ, použije se tento datový typ pro celý sloupec. Pokud jsou datové hodnoty ve sloupci různých datových typů, vybere se datový typ celého sloupce na základě následujícího grafu.
Int | plout | peníze | datetime | varchar | nvarchar | |
---|---|---|---|---|---|---|
int | int | plovoucí | peněz | varchar | varchar | nvarchar |
plovoucí | plovoucí | plovoucí | peněz | varchar | varchar | nvarchar |
peněz | peněz | peněz | peněz | varchar | varchar | nvarchar |
data a času | varchar | varchar | varchar | data a času | varchar | nvarchar |
varchar | varchar | varchar | varchar | varchar | varchar | nvarchar |
nvarchar | nvarchar | nvarchar | nvarchar | nvarchar | nvarchar | nvarchar |
Poznámky
Hodnotu vlastnosti můžete získat také pomocí sp_OAMethod
.
Dovolení
Vyžaduje členství v správce systému pevné role serveru nebo spustit oprávnění přímo v této uložené proceduře. Možnost konfigurace procedur Ole Automation serveru musí být povolena, aby bylo možné použít jakýkoli systémový postup související se službou OLE Automation.
Příklady
A. Volání metody
Následující příklad volá Connect
metodu dříve vytvořeného SQLServer objektu.
EXEC @hr = sp_OAMethod @object,
'Connect',
NULL,
'my_server',
'my_login',
'my_password';
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END;
B. Získání vlastnosti
Následující příklad načte vlastnost HostName
(dříve vytvořeného objektu SQLServer
) a uloží ji do místní proměnné.
DECLARE @property VARCHAR(255);
EXEC @hr = sp_OAMethod @object,
'HostName',
@property OUTPUT;
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END;
PRINT @property;
Související obsah
- uložené procedury OLE Automation (Transact-SQL)
- ukázkový skript pro automatizaci OLE