Bir saklı yordam çağrısı sp_getbindtoken olan veya, bir ça?r? sp_getbindtoken olan bir tetikleyici harekete SQLExecute aramaları gibi bir ODBC API işlev zaman, aşağıdaki hata iletisi görebilirsiniz:
DIAG [22018] [Microsoft] [ODBC SQL Server sürücüsü] ınvalid character value for cast specification (0)
SQLExecute SQL_SUCCESS_WITH_INFO verir, ancak yukarıdaki hatası bildiriyor.
Bu hata, yalnızca SQL Server 6.5, Service Pack 1 5a dahil olan oluşur. Saklı yordamın isql verilir veya hiçbir çıktı parametresi, bu hata oluşmaz.
Bir ODBC uygulaması çağrıldığında, saklı yordamı yürütme, başarı gösteren bir dönüş değeri verir, ancak bu hata üretir ve yeniden çıkış parametreleri vermeyen. ODBC API çağrısı SQLExecute SQL_SUCCESS_WITH_INFO ve yukarıdaki hata iletisini döndürür.
Bir tablo, bir saklı yordam ve tetikleyici Pubs veritabanına aşağıdaki SQL komut dosyası kullanarak oluşturun:
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
Isql içinde aşağıdaki SQL komut dosyasını çalıştırın. Başarılı olması ve emp_table sınama tablosuna bir satır ekleyin:
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
Saklı yordamı aşağıdaki örnek kodu kullanarak bir ODBC uygulamadan arayın. Aynı hata da aynı sıra ile gösterilen işlevlerini çağırarak, ODBC sınama aracını kullanarak yeniden.
Yukarıdaki adım SQL durumu 22018 ve "ınvalid character value for cast specification" iletisini bir dönüş kodu, SQL_SUCCESS_WITH_INFO ile sonuçlanır. Aşağıda bir örnek ODBC izleme günlüğü vardır:
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)
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:269011
(http://support.microsoft.com/kb/269011/en-us/
)
Bu makaleyi kullanmak için ne kadar kişisel çaba harcadınız?
Çok az
Az
Orta
Fazla
Çok fazla
Bu bilgiyi geliştirmemiz için nedenleri ve bu konuda neler yapabileceğimizi paylaşın
Teşekkürler! Görüşleriniz, destek içeriğimizi geliştirmemize yardımcı olmak için kullanılmaktadır. Diğer yardım seçenekleri için, lütfen Yardım ve Destek Giriş Sayfasını ziyaret edin.