sp_OAMethod (języka Transact-SQL)
Wywołuje metoda obiektu OLE.
Składnia
sp_OAMethod objecttoken , methodname
[ , returnvalue OUTPUT ]
[ , [ @parametername = ] parameter [ OUTPUT ] [ ...n ] ]
Argumenty
objecttoken
Jest tokenem obiektu obiektu OLE, który został wcześniej utworzony przy użyciu sp_OACreate.methodname
Jest nazwą metoda wywołania obiektu OLE.returnvalue DANE WYJŚCIOWE
To wartość zwracana przez metoda obiektu OLE.Jeśli określony, musi być zmienną lokalną odpowiedni typ danych.Jeśli metoda zwraca jedną wartość, albo określić zmiennej lokalnej returnvalue, która zwraca metoda zwracają wartość w zmiennej lokalnej lub nie określaj returnvalue, które zwraca wartość zwracana metoda do klient jako jedno -kolumna, pojedynczego wiersza, zestaw wyników.
Jeśli metoda zwraca wartość jest obiekt OLE returnvalue musi być lokalną zmienną typu danych int.Token obiektu jest przechowywana w zmiennej lokalnej, a token ten obiekt może być używana z innymi procedurami automatyzacji OLE przechowywane.
Kiedy metoda zwraca wartość jest tablicą, jeśli returnvalue jest określony, jest zestaw na NULL.
Błąd jest wywoływane, gdy występuje jeden z następujących czynności:
returnvaluejest określony, ale metoda nie zwraca wartości.
metoda zwraca tablicę z więcej niż dwóch wymiarów.
metoda zwraca tablicę jako parametr wyjściowy.
[ @parametername**=** parameterOUTPUT
Jest parametrem metoda .Jeśli określony, parametermusi być wartością typu odpowiednie dane.Do uzyskania zwrotu wartości parametru wyjściowego, parameter musi być zmienną lokalną odpowiedni typ danych, i produkcji musi być określony.Jeżeli określono parametr stała lub produkcji nie jest określony, dowolne zwracają wartość parametru wyjściowego jest ignorowana.
Jeśli określony, parametername musi mieć nazwę Microsoft Visual Basic o nazwie parametru.Należy zauważyć, że @*parametername *nie jest Transact-SQL zmiennej lokalnej.Znak (@**) jest usuwany i parametername* *jest przekazywana jako parametr Nazwa obiektu OLE.Wszystkie nazwane parametry muszą być określone po wszystkich parametrów pozycyjne są określone.
n
Jest symbolem zastępczym wskazującą, można określić wiele parametrów.Ostrzeżenie
@parameternamemoże być nazwany parametr, ponieważ jest częścią określona metoda i, są przekazywane do obiektu.Inne parametry dla tej procedura składowana są określane przez położenie nie nazwę.
Wartości kodów powrotnych
0 (sukces) lub liczbę różną od zera (błąd), która jest wartością całkowitą wartość HRESULT zwrócone przez obiekt automatyzacji OLE.
Aby uzyskać więcej informacji na temat zwracanych kodów HRESULT OLE automatyzacji kody zwrotne i informacje o błędzie.
Zestawy wyników
metoda zwraca wartość jest tablicą o jeden lub dwa wymiary, tablica jest zwracane do klient jako zestaw wyników:
Jednowymiarowa tablica jest zwracana do klient jako pojedynczy wiersz zestaw wyników tyle kolumn w tablicy nie ma elementów.Innymi słowy tablicy są zwracane jako (kolumny).
Dwuwymiarowa tablica jest zwracana do klient jako zestaw wyników tam wiele kolumn są elementy w pierwszym wymiar tablicy i o tyle wierszy, jak elementy drugi wymiar tablicy.Innymi słowy tablicy są zwracane jako (kolumny, wiersze).
Gdy wartość zwrócona przez właściwość lub metoda zwraca wartość jest tablicą, sp_OAGetProperty lub sp_OAMethod zwraca zestaw wyników do klient.(Parametry wyjściowe metody nie może być tablicami). Procedury te skanowanie wszystkich wartości danych w celu określenia odpowiednich SQL Server typów danych i długości danych należy użyć dla każdej kolumna w zestaw wyników.Dla określonej kolumnatych procedur należy użyć typu danych i długość zobowiązany do reprezentowania wszystkich wartości danych w tej kolumna.
Podczas wszystkich wartości danych w kolumna mają ten sam typ danych, ten typ danych jest używany dla całej kolumna.Gdy wartości danych w kolumna są różnych typów danych, typ danych w całej kolumna wybierany jest oparte na poniższym wykresie.
|
int |
Pływak |
pieniądze |
data_i_godzina |
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 |
Uwagi
Można również użyć sp_OAMethod uzyskać wartość właściwość .
Uprawnienia
Wymaga członkostwa w sysadmin stała rola serwera.
Przykłady
A.Wywołanie metoda
Następujący przykład wywołania Connect metoda utworzone wcześniej SQLServer obiektu.
EXEC @hr = sp_OAMethod @object, 'Connect', NULL, 'my_server',
'my_login', 'my_password'
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
B.Pobieranie właściwość
Poniższy przykład pobiera HostName właściwość (z utworzonego wcześniej SQLServer object) i zapisuje ją w zmiennej lokalnej.
DECLARE @property varchar(255)
EXEC @hr = sp_OAMethod @object, 'HostName', @property OUT
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
PRINT @property