Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Mendapatkan informasi kesalahan OLE Automation.
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