Bagikan melalui


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

Penting

Argumen untuk prosedur tersimpan yang diperluas harus dimasukkan dalam urutan tertentu seperti yang dijelaskan di bagian Sintaks. Jika parameter dimasukkan di luar urutan, pesan kesalahan terjadi.

objecttoken

Baik 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

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

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

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

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
Error biner(4) Representasi biner dari nomor kesalahan.
Source nvarchar(nn) Sumber kesalahan.
Description 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. Karena sp_OAGetErrorInfo tidak mengatur ulang informasi kesalahan, informasi kesalahan 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 dari nilai Transact-SQL yang diteruskan sebagai parameter metode tidak cocok dengan jenis data Microsoft Visual Basic dari parameter metode, atau NULL nilai 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. Anda dapat mendaftarkan server menggunakan Regsvr32.exe utilitas untuk server dalam proses (.dll), atau /REGSERVER sakelar baris perintah untuk server lokal (.exe).
Eksekusi server gagal (0x80080005) Objek OLE yang ditentukan terdaftar sebagai server OLE lokal (.exe file) tetapi file .exe tidak dapat ditemukan atau dimulai.
Modul yang ditentukan tidak dapat ditemukan (0x8007007e) Objek OLE yang ditentukan terdaftar sebagai server OLE (.dll file) dalam proses, 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' dari 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. Opsi konfigurasi server Prosedur Ole Automation harus diaktifkan untuk menggunakan prosedur sistem apa pun yang terkait dengan OLE Automation.

Contoh

Contoh berikut menampilkan informasi kesalahan OLE Automation.

DECLARE @output AS VARCHAR (255);
DECLARE @hr AS INT;
DECLARE @source AS VARCHAR (255);
DECLARE @description AS VARCHAR (255);

PRINT 'OLE Automation Error Information';

EXECUTE
    @hr = sp_OAGetErrorInfo
    @object,
    @source OUTPUT,
    @description OUTPUT;

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