Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale, bir (131) alan türünde sayısal karşılaştırma veya hesaplama yapmak için Visual Basic Scripting Edition (VBScript) kullandığınızda oluşan bir adNumeric
hatayı (tür uyuşmazlığı) çözmenize yardımcı olur.
Özgün ürün sürümü: Visual Basic Betiği
Özgün KB numarası: 306916
Belirtiler
(131) alan türünde sayısal karşılaştırma veya hesaplama adNumeric
yapmak için VBScript kullandığınızda, aşağıdaki hata iletilerini alabilirsiniz:
Hata iletisi 1
Microsoft VBScript çalışma zamanı hatası '800a000d'
Tür uyumsuzluğuHata iletisi 2
Microsoft VBScript çalışma zamanı hatası '800a01ca'
Değişken, VBScript'te desteklenmeyen bir Otomasyon türü kullanıyor
Neden
VBScript değerleri doğru bir sayısal türe dönüştüremediği adNumeric
için bu hata iletileri oluşur. Bu davranış tasarımdan kaynaklanır.
Çözüm
Aşağıdaki iki olası geçici çözümden birini kullanabilirsiniz:
CDbl
Alanı dönüştürmekadNumeric
için veyaCInt
işlevini kullanın.- Bu davranışı göstermeyen JScript kullanın.
Bu davranışı bir Active Server Pages (ASP) sayfasında veya basit bir Visual Basic Script (.vbs) dosyası aracılığıyla yeniden oluşturabilirsiniz. Aşağıdaki adımlar, sorunun basit bir .vbs dosyasında nasıl yeniden üretileceğini gösterir.
Davranışı yeniden oluşturmak için 1. Adım: Oracle tablosunu oluşturma
Örnek tabloyu oluşturmak için Oracle sunucunuzda aşağıdaki betiği çalıştırın:
DROP TABLE Cust;
CREATE TABLE Cust (CustID NUMBER(22,6) PRIMARY KEY, Name VARCHAR2(50));
INSERT INTO Cust VALUES(222,'Kent');
INSERT INTO Cust VALUES(333,'Sally');
COMMIT;
Davranışı yeniden oluşturmak için 2. Adım: VBS dosyasını oluşturma
Not Defteri'nde Test.vbs adlı yeni bir metin belgesi oluşturun ve aşağıdaki kodu teste yapıştırın.
Set oConn = CreateObject("ADODB.Connection") oConn.open "Provider=MSDAORA;user id=User;" & _ "password=password;data source=Oracle816Server;" set oRS = oConn.Execute("Select CustID FROM Cust") MsgBox "Numeric field type is 131." & vbcrlf & _ "Field Type = " & ors.fields("CustID").type MsgBox "Numeric field * 100 = " & oRS("CustID") * 100 MsgBox "Numeric field * 100 = " & cdbl(oRS("Custid")) * 100
bağlantı dizesi Oracle sunucunuza işaret edip geçerli bir kullanıcı adı ve parola sağlayacak şekilde değiştirin.
Test.vbs dosyasını masaüstünüzde kaydedin. Uzantıyı değiştirmenin dosyayı kararsız hale getirebileceğine dair bir uyarı almalısınız. Devam etmek için Tamam 'a tıklayın. Bu uyarıyı görmüyorsanız, bilinen dosya türleri için uzantıları gösterdiğinizi emin olmak isteyebilirsiniz.
Test.vbs dosyasını kapatın.
Masaüstünüzde Test.vbs'ye çift tıklayarak kodu çalıştırın. Tür Uyuşmazlığı hata iletisini alırsınız.
Alanı çift veri türüne dönüştüren aşağıdaki kod satırının açıklamasını
adNumeric
kaldırın:MsgBox "Numeric field * 100 = " & cdbl(oRS("Custid")) * 100
Aşağıdaki kod satırına açıklama ekleyin:
MsgBox "Numeric field * 100 = " & oRS("CustID") * 100
Test.vbs dosyasını kapatın ve kaydedin.
Masaüstünüzde, kodu yeniden çalıştırmak için Test.vbs'ye çift tıklayın, ardından iki ileti kutusu alırsınız ve hata iletisi almazsınız.