sp_OAMethod (T-SQL)
Berlaku untuk:SQL Server
Memanggil metode objek OLE.
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk