Sdílet prostřednictvím


sp_OAMethod (Transact-SQL)

platí pro:SQL Server

Volá metodu objektu OLE.

Transact-SQL konvence syntaxe

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;