2009-07-28 13 views
6

Z powodu wartości qty przekraczającej to, co VBScript INT może przechowywać, otrzymuję dość nieprzyjemny komunikat o błędzie (w rzeczywistości użytkownicy są) ... Jest to całkowicie przypadek twitpocalypse.Błąd klasycznej aplikacji ASP CINT - twitpocalypse v2

Ponieważ funkcja CINT() nie działa w takiej sytuacji, jakie jest najlepsze rozwiązanie?

requestqty = 40200 
CInt() max = 32767 

CInt(requestqty) 

EDIT
CLng() wydaje się rade, żadnego ryzyka do kodu, aby zmienić wszystkie CInt(), aby CLng(). Z tego, co przeczytałem poniżej i jeszcze w sieci, wynika, że ​​naprawdę istnieje bardzo mały powód, aby nawet używać CInt(). Nie napisałem tej konkretnej aplikacji i nie wiem, dlaczego jeden był używany nad drugim, ale wolałabym nie sprzeciwić się problemowi i całkowicie naprawić ten problem w aplikacji, aby się to nie powtórzyło ...

+0

Czy możesz użyć podwójnego? – NoCarrier

Odpowiedz

11

Zawsze używa w VBScript długich zamiast int (chyba że chcesz ograniczyć wartość do zakresu int).

Nie ma żadnych korzyści związanych z wydajnością przy korzystaniu z mniejszego typu i nie ma korzyści w zakresie wielkości pamięci, ponieważ wszystkie zmienne są wariantami, więc wszystkie typy proste korzystają z tej samej ilości pamięci.

Użyj funkcji CLng zamiast funkcji CInt.

+0

Każdy powód, aby nie zmienić całej CInt na CLng? Jakiekolwiek ryzyko? Nie napisałem aplikacji i muszę ją "naprawić" dość szybko ... Nie dotykam VBScript i Classic ASP tak bardzo, więc trochę pod wodą ... – RSolberg

+0

Możesz zmienić wszystkie CInt na CLng, ale następnie należy sprawdzić, czy wartości nie zostaną obcięte później w procesie, np. przechowywane w polu smallint w bazie danych. – Guffa

+0

Perfect .... Dzięki ... – RSolberg

2

CLng() i używanie długich zamiast Int?

Powiązane problemy