sp_OAMethod (T-SQL)

Berlaku untuk:SQL Server

Memanggil metode objek OLE.

Konvensi sintaks transact-SQL

Sintaks

  
sp_OAMethod objecttoken , methodname  
    [ , returnvalue OUTPUT ]   
    [ , [ @parametername = ] parameter [ OUTPUT ] [ ...n ] ]   

Argumen

objecttoken
Adalah token objek objek OLE yang sebelumnya dibuat dengan menggunakan sp_OACreate.

methodname
Adalah nama metode objek OLE untuk dipanggil.

OUTPUT returnvalue
Adalah nilai pengembalian metode objek OLE. Jika ditentukan, variabel harus berupa variabel lokal dari jenis data yang sesuai.

Jika metode mengembalikan nilai tunggal, tentukan variabel lokal untuk returnvalue, yang mengembalikan nilai pengembalian metode dalam variabel lokal, atau tidak menentukan returnvalue, yang mengembalikan nilai pengembalian metode ke klien sebagai kumpulan hasil satu kolom, baris tunggal.

Jika nilai pengembalian metode adalah objek OLE, nilai kembali harus merupakan variabel lokal dari int tipe data. Token objek disimpan dalam variabel lokal, dan token objek ini dapat digunakan dengan prosedur tersimpan OLE Automation lainnya.

Ketika nilai pengembalian metode adalah array, jika nilai kembali ditentukan, nilai tersebut diatur ke NULL.

Kesalahan dimunculkan ketika salah satu hal berikut ini terjadi:

  • returnvalue ditentukan, tetapi metode tidak mengembalikan nilai.

  • Metode mengembalikan array dengan lebih dari dua dimensi.

  • Metode mengembalikan array sebagai parameter output.

[ _@parametername = ] parameter[ OUTPUT ] Adalah parameter metode. Jika ditentukan, parameter harus merupakan nilai dari jenis data yang sesuai.

Untuk mendapatkan nilai pengembalian parameter output, parameter harus berupa variabel lokal dari jenis data yang sesuai, dan OUTPUT harus ditentukan. Jika parameter konstanta ditentukan, atau jika OUTPUT tidak ditentukan, nilai pengembalian apa pun dari parameter output diabaikan.

Jika ditentukan, nama parameter haruslah nama parameter bernama Microsoft Visual Basic. Perhatikan bahwa @_parametername_is bukan variabel lokal Transact-SQL. Tanda saat (@) dihapus, dan namaparameter diteruskan ke objek OLE sebagai nama parameter. Semua parameter bernama harus ditentukan setelah semua parameter posisi ditentukan.

n
Adalah tempat penampung yang menunjukkan bahwa beberapa parameter dapat ditentukan.

Catatan

@parametername dapat menjadi parameter bernama karena merupakan bagian dari metode yang ditentukan dan diteruskan ke objek. Parameter lain untuk prosedur tersimpan ini ditentukan berdasarkan posisi, bukan nama.

Mengembalikan Nilai Kode

0 (berhasil) atau angka bukan nol (kegagalan) yang merupakan nilai bilangan bulat HRESULT yang dikembalikan oleh objek OLE Automation.

Untuk informasi selengkapnya tentang Kode Pengembalian HRESULT, OLE Automation Mengembalikan Kode dan Informasi Kesalahan.

Tataan Hasil

Jika nilai pengembalian metode adalah array dengan satu atau dua dimensi, array dikembalikan ke klien sebagai kumpulan hasil:

  • Array satu dimensi dikembalikan ke klien sebagai hasil baris tunggal yang diatur dengan kolom sebanyak ada elemen dalam array. Dengan kata lain, array dikembalikan sebagai (kolom).

  • Array dua dimensi dikembalikan ke klien sebagai hasil yang ditetapkan dengan kolom sebanyak ada elemen dalam dimensi pertama array dan dengan baris sebanyak ada elemen dalam dimensi kedua array. Dengan kata lain, array dikembalikan sebagai (kolom, baris).

Saat nilai pengembalian properti atau nilai pengembalian metode adalah array, sp_OAGetProperty atau sp_OAMethod mengembalikan hasil yang diatur ke klien. (Parameter output metode tidak boleh array.) Prosedur ini memindai semua nilai data dalam array untuk menentukan jenis data dan panjang data SQL Server yang sesuai untuk digunakan untuk setiap kolom dalam tataan hasil. Untuk kolom tertentu, prosedur ini menggunakan jenis dan panjang data yang diperlukan untuk mewakili semua nilai data di kolom tersebut.

Saat semua nilai data dalam kolom memiliki tipe data yang sama, tipe data tersebut digunakan untuk seluruh kolom. Saat nilai data dalam kolom memiliki tipe data yang berbeda, tipe data dari seluruh kolom dipilih berdasarkan bagan berikut.

int float money datetime varchar nvarchar
int int float Uang varchar varchar nvarchar
float float float Uang varchar varchar nvarchar
Uang Uang Uang Uang varchar varchar nvarchar
datetime varchar varchar varchar datetime varchar nvarchar
varchar varchar varchar varchar varchar varchar nvarchar
nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar

Keterangan

Anda juga dapat menggunakan sp_OAMethod untuk mendapatkan nilai properti.

Izin

Memerlukan keanggotaan dalam peran server tetap sysadmin atau menjalankan izin langsung pada Prosedur Tersimpan ini. Ole Automation Procedures konfigurasi harus diaktifkan untuk menggunakan prosedur sistem apa pun yang terkait dengan OLE Automation.

Contoh

J. Memanggil metode

Contoh berikut memanggil Connect metode objek SQLServer yang dibuat sebelumnya.

EXEC @hr = sp_OAMethod @object, 'Connect', NULL, 'my_server',  
    'my_login', 'my_password';  
IF @hr <> 0  
BEGIN  
   EXEC sp_OAGetErrorInfo @object  
    RETURN  
END;  

B. Mendapatkan properti

Contoh berikut mendapatkan HostName properti (dari objek SQLServer yang dibuat sebelumnya) dan menyimpannya dalam variabel lokal.

DECLARE @property varchar(255);  
EXEC @hr = sp_OAMethod @object, 'HostName', @property OUT;  
IF @hr <> 0  
BEGIN  
   EXEC sp_OAGetErrorInfo @object  
    RETURN  
END;  
PRINT @property;  

Lihat Juga

Prosedur Tersimpan Automasi OLE (Transact-SQL)
Skrip Sampel Automasi OLE