sp_OAGetErrorInfo (T-SQL)

Berlaku untuk:SQL Server

Mendapatkan informasi kesalahan OLE Automation.

Konvensi sintaks transact-SQL

Sintaks

  
sp_OAGetErrorInfo [ objecttoken ]  
    [ , source OUTPUT ]   
    [ , description OUTPUT ]   
    [ , helpfile OUTPUT ]   
    [ , helpid OUTPUT ]   

Argumen

objecttoken
Apakah token objek objek OLE yang sebelumnya dibuat dengan menggunakan sp_OACreate atau NULL. Jika objecttoken ditentukan, informasi kesalahan untuk objek tersebut dikembalikan. Jika NULL ditentukan, informasi kesalahan untuk seluruh batch dikembalikan.

OUTPUT sumber
Adalah sumber informasi kesalahan. Jika ditentukan, itu harus berupa variabel karakter lokal, nchar, varchar, atau nvarchar. Nilai pengembalian dipotong agar sesuai dengan variabel lokal jika perlu.

output deskripsi
Adalah deskripsi kesalahan. Jika ditentukan, itu harus berupa variabel karakter lokal, nchar, varchar, atau nvarchar. Nilai pengembalian dipotong agar sesuai dengan variabel lokal jika perlu.

output helpfile
Adalah file bantuan untuk objek OLE. Jika ditentukan, itu harus berupa variabel karakter lokal, nchar, varchar, atau nvarchar. Nilai pengembalian dipotong agar sesuai dengan variabel lokal jika perlu.

output bantuan
Adalah ID konteks file bantuan. Jika ditentukan, itu harus berupa variabel int lokal.

Catatan

Parameter 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, lihat Kode Pengembalian Otomatisasi OLE dan Informasi Kesalahan.

Tataan Hasil

Jika tidak ada parameter output yang ditentukan, informasi kesalahan dikembalikan ke klien sebagai kumpulan hasil.

Nama kolom Jenis data Deskripsi
Kesalahan biner(4) Representasi biner dari nomor kesalahan.
Sumber nvarchar(nn) Sumber kesalahan.
Keterangan nvarchar(nn) Deskripsi kesalahan.
Helpfile nvarchar(nn) File bantuan untuk sumber.
HelpID int ID konteks bantuan dalam file sumber Bantuan.

Keterangan

Setiap panggilan ke prosedur tersimpan OLE Automation (kecuali sp_OAGetErrorInfo) mengatur ulang informasi kesalahan; oleh karena itu, sp_OAGetErrorInfo mendapatkan informasi kesalahan hanya untuk panggilan prosedur tersimpan OLE Automation terbaru. Perhatikan bahwa karena sp_OAGetErrorInfo tidak mengatur ulang informasi kesalahan, sp_OAGetErrorInfo dapat dipanggil beberapa kali untuk mendapatkan informasi kesalahan yang sama.

Tabel berikut mencantumkan kesalahan Automasi OLE dan penyebab umumnya.

Kesalahan dan HRESULT Penyebab umum
Jenis variabel buruk (0x80020008) Jenis data nilai Transact-SQL yang diteruskan sebagai parameter metode tidak cocok dengan jenis data Microsoft Visual Basic dari parameter metode, atau nilai NULL diteruskan sebagai parameter metode.
Nama tidak dikenal (0x8002006) Properti atau nama metode yang ditentukan tidak ditemukan untuk objek yang ditentukan.
String kelas tidak valid (0x800401f3) ProgID atau CLSID yang ditentukan tidak terdaftar sebagai objek OLE pada instans SQL Server. Server otomatisasi OLE kustom harus didaftarkan sebelum dapat diinstansiasi menggunakan sp_OACreate. Ini dapat dilakukan dengan menggunakan utilitas Regsvr32.exe untuk server dalam proses (.dll), atau sakelar baris perintah /REGSERVER untuk server lokal (.exe).
Eksekusi server gagal (0x80080005) Objek OLE yang ditentukan terdaftar sebagai server OLE lokal (file.exe) tetapi file .exe tidak dapat ditemukan atau dimulai.
Modul yang ditentukan tidak dapat ditemukan (0x8007007e) Objek OLE yang ditentukan terdaftar sebagai server OLE dalam proses (file .dll), tetapi file .dll tidak dapat ditemukan atau dimuat.
Ketidakcocokan jenis (0x80020005) Jenis data variabel lokal Transact-SQL yang digunakan untuk menyimpan nilai properti yang dikembalikan atau nilai pengembalian metode tidak cocok dengan jenis data Visual Basic dari properti atau nilai pengembalian metode. Atau, nilai pengembalian properti atau metode diminta, tetapi tidak mengembalikan nilai.
Jenis data atau nilai parameter 'konteks' sp_OACreate tidak valid. (0x8004275B) Nilai parameter konteks harus salah satu dari: 1, 4, atau 5.

Untuk informasi selengkapnya tentang memproses Kode Pengembalian HRESULT, lihat Kode Pengembalian Otomatisasi OLE dan Informasi Kesalahan.

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

Contoh berikut menampilkan informasi kesalahan OLE Automation.

DECLARE @output varchar(255);  
DECLARE @hr int;  
DECLARE @source varchar(255);  
DECLARE @description varchar(255);  
PRINT 'OLE Automation Error Information';  
EXEC @hr = sp_OAGetErrorInfo @object, @source OUT, @description OUT;  
IF @hr = 0  
BEGIN  
    SELECT @output = '  Source: ' + @source  
    PRINT @output  
    SELECT @output = '  Description: ' + @description  
    PRINT @output  
END  
ELSE  
BEGIN  
    PRINT '  sp_OAGetErrorInfo failed.'  
    RETURN  
END;  

Lihat Juga

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