sp_OAMethod (języka Transact-SQL)
Wywołuje metoda obiektu.
sp_OAMethod objecttoken , methodname
[ , returnvalue OUTPUT ]
[ , [ @parametername = ] parameter [ OUTPUT ] [ ...n ] ]
Argumenty
objecttoken
Jest tokenem obiektu z obiekt OLE, który został wcześniej utworzony przy użyciu sp_OACreate.methodname
Jest nazwą metoda obiektu OLE do wywoływania.returnvalue DANE WYJŚCIOWE
Jest to wartość zwracana metoda obiektu OLE.Jeśli określono, musi być zmienna lokalna o odpowiedni typ danych.Metoda zwraca jedną wartość, albo określić zmienna lokalna dla returnvalue, z którego zwracana metoda zwraca wartość w zmiennej lokalnej lub nie określaj returnvalue, która zwraca wartość zwrotu metody do klient jako jedno-kolumna, pojedynczy wiersz wyniku zestawu.
Jeśli metoda zwracać wartość jest obiekt OLE returnvalue musi być zmiennej lokalnej typu danych int. Token obiektu jest przechowywana w zmiennej lokalnej, a token ten obiekt może być używany z innymi automatyzacji OLE przechowywanych procedur.
Metoda zwraca wartość jest tablica, jeśli returnvalue jest określony, jest on zestaw wartości null.
Błąd powstaje, gdy zachodzi jeden z następujących czynności:
returnvalue jest określony, ale metoda nie zwraca wartości.
Metoda zwraca tablicę z więcej niż dwóch wymiarów.
Metoda zwraca tablicę jako parametru wyjściowego.
[ @parametername**=** ] parameter[ OUTPUT ]
To parametr metoda.Jeśli określono, parametermusi być wartością typu danych.Aby uzyskać wartości zwracanej jako parametr wyjściowy parameter musi być zmiennej lokalnej typu danych i DANE WYJŚCIOWE musi być określona.Jeżeli określono wartość parametru o stała lub DANE WYJŚCIOWE nie jest określony, wszystkie zwracanej wartości z parametru wyjściowego jest ignorowana.
If specified, parametername must be the name of the Microsoft Visual Basic named parameter.Note that @parameternameis not a Transact-SQL local variable.The at sign (@) is removed, and parameternameis passed to the OLE object as the parameter name.Po określono wszystkich parametrów pozycyjne, należy określić wszystkie parametry nazwane.
n
Jest symbolem zastępczym wskazującą, można określić wiele parametrów.Uwaga
@parametername może być nazwany parametr, ponieważ jest częścią określonej metoda, zostaje przesłany do obiektu.Inne parametry dla tej procedura przechowywana są określone za pomocą pozycji nie nazwę.
Wartości kodów powrotnych
0 (sukces) lub liczbę różną od zera (błąd), która jest liczbą całkowitą wartość HRESULT, zwrócone przez obiekt automatyzacji OLE.
Aby uzyskać więcej informacji na temat HRESULT zwracanych kodów OLE Automation Return Codes and Error Information.
Zestawy wyników
Metoda zwraca wartość ma postać tablicy, z jednego lub dwóch wymiarów, tablica jest zwracane do klient jako zestaw wyników:
Jednowymiarowa tablica jest zwracane do klient, zestaw wyników pojedynczy wiersz z elementów w tablicy są jako istnieje wiele kolumn.Innymi słowy tablicy są zwracane jako (kolumny).
Dwuwymiarowej tablicy jest zwracany do klient jako zestaw wyników ze wszystkich kolumn, w pierwszym wymiarze tablicy a o tyle wierszy, drugi wymiar tablicy nie ma elementów nie ma elementów.Innymi słowy tablicy są zwracane jako (kolumn, wierszy).
Gdy wartość zwrócona przez właściwość lub metoda zwraca wartość ma postać tablicy, sp_OAGetProperty or sp_OAMethod zwraca zestaw wyników do klient.(Parametry wyjściowe metoda nie może być tablicami.) Procedury te skanowanie wszystkich wartości danych w tablicy w celu określenia odpowiednich SQL Server Ustaw typy danych i długość danych dla każdej kolumna, w wyniku. Dla określonej kolumna te procedury za pomocą typu danych i długość wymaganego do reprezentowania wszystkich wartości danych w tej kolumnie.
W przypadku wszystkich wartości danych kolumna mają ten sam typ danych, do całą kolumna używany jest ten typ danych.Gdy wartości danych kolumna są różnych typów danych, typ danych kolumna, cały wybierany jest oparte na poniższym wykresie.
|
int |
zmiennoprzecinkowe |
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 |
Remarks
Można również użyć sp_OAMethod , aby uzyskać wartość właściwość.
Uprawnienia
Członkostwo w grupie wymaga sysadmin stała rola serwera.
Przykłady
A.Wywołanie metoda
Następujące wywołania przykład 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.Uzyskiwanie właściwość
Poniższy przykład pobiera HostName Właściwość (z utworzonego wcześniej SQLServer obiektu) 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
See Also