Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.
Ketika API ODBC fungsi seperti SQLExecute memanggil stored procedure yang memiliki panggilan untuk sp_getbindtoken atau bahwa kebakaran pemicu yang memiliki panggilan untuk sp_getbindtoken, Anda dapat melihat pesan galat berikut:
DIAG [22018] [Microsoft] [ODBC SQL Server Driver] nilai karakter tidak sah
cast Spesifikasi (0)
SQLExecute kembali SQL_SUCCESS_WITH_INFO tetapi laporan kesalahan di atas.
Galat ini terjadi hanya dengan SQL Server 6.5, termasuk paket layanan 1 melalui 5a. Kesalahan ini tidak terjadi ketika disimpan prosedur disebut dari isql atau tidak memiliki output parameter.
Saat dipanggil dari aplikasi ODBC, disimpan prosedur pelaksanaan mengembalikan nilai kembali menunjukkan keberhasilan, tetapi menghasilkan kesalahan ini dan tidak memberikan kembali keluaran parameter. ODBC API panggilan SQLExecute kembali SQL_SUCCESS_WITH_INFO dan pesan kesalahan di atas.
Membuat tabel, prosedur yang disimpan, dan memicu dalam database Pub menggunakan skrip SQL berikut:
create table emp_table (emp_id int primary key,
emp_name varchar(80) not null )
go
create trigger TR_emp_table_ins on emp_table
for insert as
begin
declare @token_value varchar(255)
exec master..sp_getbindtoken @token_value output
end
go
create procedure test_proc_one
@return_code int output,
@error_code int output
as
begin
declare @token_value varchar(255)
declare @max_emp_id int
select @return_code = 13
begin tran
select @max_emp_id = max(emp_id) from emp_table
if @max_emp_id is null
begin
select @max_emp_id = 1
end
else
begin
select @max_emp_id = @max_emp_id + 1
end
insert into emp_table values(@max_emp_id, 'John Doe')
if @@error <> 0
begin
raiserror('Insert into employee_list failed for emp_id %d', 16, -1, @max_emp_id)
rollback tran
select @return_code = -100
select @error_code = -200
end
else
begin
commit tran
select @return_code = 0
select @error_code = 2
end
end /* procedure test_proc_one */
go
Menjalankan skrip SQL berikut di dalam isql. Harus sukses dan menyisipkan baris ke tes meja, emp_table:
declare @ret_value int
declare @err_code int
declare @string varchar(255)
select @ret_value = 10
select @err_code = 20
exec test_proc_one @ret_value output, @err_code output
select @string = 'test_proc_one set ret_value to ' + rtrim(convert(varchar(16), @ret_value))
+ ' and err_code to ' + rtrim(convert(varchar(16), @err_code))
print @string
select * from emp_table
Memanggil stored procedure sama dari ODBC aplikasi yang menggunakan kode contoh berikut. Kesalahan yang sama dapat juga direproduksi menggunakan ODBC uji perangkat dengan memanggil fungsi ditampilkan dalam urutan yang sama.
Langkah diatas menghasilkan SQL negara 22018 dan "nilai karakter tidak sah untuk pemain spesifikasi" pesan dengan kode kembali SQL_SUCCESS_WITH_INFO. Berikut ini adalah contoh ODBC jejak log:
mssamp 163:166 EXIT SQLExecute with return code 1 (SQL_SUCCESS_WITH_INFO)
HSTMT 0x00cc2158
DIAG [22018] [Microsoft][ODBC SQL Server Driver]Invalid character value for cast specification (0)
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:269011
(http://support.microsoft.com/kb/269011/en-us/
)
Seberapa besar upaya Anda untuk menggunakan artikel ini?
Sangat sedikit
Sedikit
Sedang
Besar
Sangat besar
Berikan saran tentang apa yang dapat kami lakukan untuk menyempurnakan informasi ini
Terima kasih! Masukan Anda akan digunakan untuk membantu kami meningkatkan konten dukungan. Untuk opsi bantuan lainnya, kunjungi Halaman Beranda Bantuan dan Dukungan.