sp_OAMethod (Transact-SQL)
Si applica a:SQL Server
Chiama un metodo di un oggetto OLE.
Convenzioni di sintassi Transact-SQL
Sintassi
sp_OAMethod objecttoken , methodname
[ , returnvalue OUTPUT ]
[ , [ @parametername = ] parameter [ OUTPUT ] [ ...n ] ]
Argomenti
objecttoken
Token oggetto di un oggetto OLE creato in precedenza tramite sp_OACreate.
Methodname
Nome del metodo dell'oggetto OLE da chiamare.
output returnvalue
Valore restituito del metodo dell'oggetto OLE. Se specificato, deve essere una variabile locale del tipo di dati appropriato.
Se il metodo restituisce un singolo valore, specificare una variabile locale per returnvalue, che restituisce il valore restituito dal metodo nella variabile locale oppure non specificare returnvalue, che restituisce il valore restituito dal metodo al client come set di risultati a riga singola e a riga singola.
Se il valore restituito del metodo è un oggetto OLE, returnvalue deve essere una variabile locale di tipo di dati int. Un token di oggetto viene archiviato nella variabile locale e questo token di oggetto può essere usato con altre stored procedure di automazione OLE.
Quando il valore restituito del metodo è una matrice, se viene specificato returnvalue , viene impostato su NULL.
Viene generato un errore in uno dei casi seguenti:
returnvalue viene specificato, ma il metodo non restituisce un valore.
Il metodo restituisce una matrice a più di due dimensioni.
Il metodo restituisce una matrice come parametro di output.
[ _@parametername = ] parameter[ OUTPUT ]
Parametro del metodo. Se specificato, il parametro deve essere un valore del tipo di dati appropriato.
Per ottenere il valore restituito di un parametro di output, il parametro deve essere una variabile locale del tipo di dati appropriato e è necessario specificare OUTPUT . Se viene specificato un parametro costante o se OUTPUT non viene specificato, qualsiasi valore restituito da un parametro di output viene ignorato.
Se specificato, parametername deve essere il nome del parametro denominato di Microsoft Visual Basic. Si noti che @_parametername_is non una variabile locale Transact-SQL. Il simbolo at (@) viene rimosso e parameternameviene passato all'oggetto OLE come nome del parametro. Tutti i parametri denominati devono essere specificati dopo tutti i parametri posizionali.
n
Segnaposto che indica la possibilità di specificare più parametri.
Nota
@parametername può essere un parametro denominato perché fa parte del metodo specificato e viene passato all'oggetto . Gli altri parametri della stored procedure vengono specificati in base alla posizione e non in base al nome.
Valori del codice restituito
0 (esito positivo) o un numero diverso da zero (esito negativo) corrispondente al valore intero del codice HRESULT restituito dall'oggetto di automazione OLE.
Per altre informazioni sui codici restituiti HRESULT, codici restituiti di automazione OLE e informazioni sugli errori.
Set di risultati
Se il valore restituito del metodo è una matrice a una o due dimensioni, la matrice viene restituita al client come set di risultati:
Una matrice unidimensionale viene restituita al client come set di risultati a riga singola con lo stesso numero di colonne del numero di elementi nella matrice. In altri termini, la matrice viene restituita come (colonne).
Una matrice bidimensionale viene restituita al client come set di risultati costituito da un numero di colonne pari al numero di elementi della prima dimensione della matrice e un numero di righe pari al numero di elementi della seconda dimensione della matrice. In altri termini, la matrice viene restituita come (colonne, righe).
Quando un valore restituito della proprietà o un valore restituito dal metodo è una matrice, sp_OAGetProperty o sp_OAMethod restituisce un set di risultati al client. I parametri di output dei metodi non possono essere rappresentati da matrici. Queste procedure eseguono un'analisi di tutti i valori di dati della matrice per determinare quali sono i tipi di dati di SQL Server appropriati e la lunghezza di dati da usare per ogni colonna del set di risultati. Per una colonna specifica queste procedure utilizzano il tipo di dati e la lunghezza necessari per rappresentare tutti i valori di dati della colonna.
Se a tutti i valori di dati di una colonna è associato lo stesso tipo di dati, tale tipo verrà applicato all'intera colonna. Se i valori di dati di una colonna sono tipi di dati diversi, il tipo di dati della colonna viene scelto in base allo schema seguente.
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 |
Osservazioni:
È anche possibile usare sp_OAMethod per ottenere un valore della proprietà.
Autorizzazioni
È richiesta l'appartenenza al ruolo predefinito del server sysadmin o l'autorizzazione di esecuzione direttamente in questa stored procedure. Ole Automation Procedures
la configurazione deve essere abilitata per utilizzare qualsiasi procedura di sistema correlata all'automazione OLE.
Esempi
R. Chiamata di un metodo
Nell'esempio seguente viene chiamato il Connect
metodo dell'oggetto SQLServer creato in precedenza.
EXEC @hr = sp_OAMethod @object, 'Connect', NULL, 'my_server',
'my_login', 'my_password';
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END;
B. Recupero di una proprietà
Nell'esempio seguente viene recuperata la HostName
proprietà (dell'oggetto SQLServer creato in precedenza) e la archivia in una variabile locale.
DECLARE @property varchar(255);
EXEC @hr = sp_OAMethod @object, 'HostName', @property OUT;
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END;
PRINT @property;
Vedi anche
Stored procedure di automazione OLE (Transact-SQL)
Script di automazione OLE di esempio
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per