Solved

Error Overflow

Posted on 2008-10-27
5
709 Views
Last Modified: 2012-05-05
Hi, I am getting an overflow error on my code - ASP - line 164,
 Can somebody tell me what can be wrong ?

<% level="../"%>

<!--#include file="compHandi.asp"-->

<!--#include file="logincheck.asp"-->

<!--#include file="../include/intialize.inc"-->

<!--include file="../include/connection.asp"-->

<!--#include file="../../Connections/sqlConn1.asp" -->
 

<%

dim trigger

trigger = 1

set rs = Server.CreateObject("ADODB.Recordset")

sql = "SELECT * from Scores WHERE SSN = '" & session("username") & "'"

rs.Open sql,conSQL,3,3

if rs.recordcount = 0 then trigger = 2

					'---------------------------------------

if trigger <> 2 then

		dim eagleCount, birdieCount, parCount, bogeyCount, doubleCount, otherCount, totalCount

		'right here...............dim avg18, low18, high18

		eagleCount = 0

		birdieCount = 0

		parCount = 0

		bogeyCount = 0

		doubleCount = 0

		otherCount = 0

		totalCount = 0

		

		rs.movefirst

		while not rs.eof

			call breakdown

			rs.movenext

		wend

	

	

		dim numRecords18

		dim numRecords9

		dim average18

		dim average9

		dim lowRound18

		dim lowRound9

		dim highRound18

		dim highRound9

		

	call findCount("Full", "Full", numRecords18)

	call findAverage("Full", "Full", numRecords18, average18)

	call findLowest("Full", "Full", lowRound18)

	call findHighest("Full", "Full", highRound18)

	call findCount("Front", "Back", numRecords9)

	call findAverage("Front", "Back", numRecords9, average9)

	call findLowest("Front", "Back", lowRound9)

	call findHighest("Front", "Back", highRound9)

	

		dim average3

		dim average4

		dim average5

		

		call findAllTHIS(3, finalAverage)

		average3 = finalAverage

		call findAllTHIS(4, finalAverage)

		average4 = finalAverage

		call findAllTHIS(5, finalAverage)

		average5 = finalAverage

end if				'---------------------------------------

	

sub breakdown()

	dim startHere

	dim endHere

	dim difference

	dim hole

	

		if rs("Round") = "Full" then 

			startHere = 1

			endHere = 18

		elseif rs("Round") = "Front" then

			startHere = 1

			endHERE = 9

		else

			startHERE = 10

			endHERE = 18

		end if

		

		set rs2 = Server.CreateObject("ADODB.Recordset")

		sql2 = "SELECT * from CourseHoles WHERE CourseID =" & rs("CourseID") & " AND Difficulty = 'Par'"

		rs2.Open sql2, conSQL

		

		for hole = startHere to endHere

			difference = cint(rs("H" & hole)) - cint(rs2("h" & hole))

			select case difference

				case -2

					eagleCount = eagleCount + 1

				case -1

					birdieCount = birdieCount + 1

				case 0

					parCount = parCount + 1

				case 1

					bogeyCount = bogeyCount + 1

				case 2

					doubleCount = doubleCount + 1

				case else

					otherCount = otherCount + 1

			end select

		next

		totalCount = eagleCount + birdieCount + parCount + bogeyCount + doubleCount + otherCount

		rs2.close

		set rs2 = nothing

end sub	

	

sub findCount(theCase1, theCase2, byref numRecords)

	numRecords = 0

	rs.movefirst

	while not rs.eof

		if rs("Round") = theCase1 or rs("Round") = theCase2 then numRecords = numRecords + 1

		rs.movenext

	wend

end sub
 
 

sub findAverage(theCase1, theCase2, theCount, byref theAverage)

	dim total

	total = 0

	rs.movefirst

	while not rs.EOF

		if rs("Round") = theCase1 or rs("Round") = theCase2 then total = total + cint(rs("Total"))

		rs.movenext

	wend

	if thecount = 0 then theAverage = 0 else theAverage = total/theCount

end sub
 

sub findLowest(theCase1, theCase2, byref theLowest)

	dim lowest

	rs.movefirst

	lowest = 1000

	while not rs.eof

		if rs("Total") < lowest and (rs("Round") = theCase1 or rs("Round") = theCase2) then lowest = rs("Total")

		rs.movenext

	wend

	if lowest = 1000 then theLowest = "-" else theLowest = lowest

end sub
 

sub findHighest(theCase1, theCase2, byref theHighest)

	dim highest

	rs.movefirst

	highest = -1000

	while not rs.eof

		if rs("Total") > highest and (rs("Round") = theCase1 or rs("Round") = theCase2) then highest = rs("Total")

		rs.movenext

	wend

	if highest = "-1000" then theHighest = "-" else theHighest = highest

end sub
 

sub findAllTHIS(findTHIS, finalAverage)

		dim grandTotal

		dim totalCountTHIS

		grandTotal = 0

		totalCountTHIS = 0

		rs.movefirst

		while not rs.eof

		recordTotal = 0

		countTHIS = 0

			call findTHISaverage(findTHIS, recordTotal, countTHIS)

			grandTotal = grandTotal + recordTotal

			totalCountTHIS = totalCountTHIS + countTHIS

			rs.movenext

		wend

		finalAverage = grandTotal/totalCountTHIS

end sub
 

sub findTHISaverage(findTHIS, recordTotal, countTHIS)

	dim startHere

	dim endHere

	
 

		if rs("Round") = "Full" then 

			startHere = 1

			endHere = 18

		elseif rs("Round") = "Front" then

			startHere = 1

			endHERE = 9

		else

			startHERE = 10

			endHERE = 18

		end if

		

		set rs2 = Server.CreateObject("ADODB.Recordset")

		sql2 = "SELECT * from CourseHoles WHERE CourseID =" & rs("CourseID") & " AND Difficulty = 'Par'"

		rs2.Open sql2, conSQL

		

		for hole = startHere to endHere

			if rs2("h" & hole) = findTHIS then 

				recordTotal = recordTotal + rs("H" & hole)

				countTHIS = countTHIS + 1

			end if

		next

		'response.write(recordTotal & "." & count3 & "..." )

		

		rs2.close

		set rs2 = nothing

end sub
 

		rs.close

		set rs = nothing
 

%>

Open in new window

0
Comment
Question by:RickyGtz
  • 3
  • 2
5 Comments
 
LVL 7

Expert Comment

by:bluV11t
ID: 22819761
Hi!
Could it be a case of zero devided by zero?

F.eks.
'This causes Devision by zero error
response.Write 2/0

'This causes no error
response.Write 0/2

'This causes overflow error
response.Write 0/0
0
 

Author Comment

by:RickyGtz
ID: 22822349
I know is caused by dividing something by zero. But I can't figure out what is wrong on my code.


	dim totalCountTHIS

		grandTotal = 0

		totalCountTHIS = 0

		rs.movefirst

		while not rs.eof

		recordTotal = 0

		countTHIS = 0

			call findTHISaverage(findTHIS, recordTotal, countTHIS)

			grandTotal = grandTotal + recordTotal

			totalCountTHIS = totalCountTHIS + countTHIS

			rs.movenext

		wend

		finalAverage = grandTotal/totalCountTHIS

Open in new window

0
 
LVL 7

Expert Comment

by:bluV11t
ID: 22849579
Just do a check of grandTotal and totalCountTHIS first to avoid zero by zero division:
Replace line 13:

if (grandTotal == 0 && totalCountTHIS == 0){
finalAverage = 0;
}
else {
finalAverage = grandTotal/totalCountTHIS;
}
0
 

Author Comment

by:RickyGtz
ID: 22853975
hi thanks for your answer, how could i do the previous code on Classic ASP and Vbasic syntax....?
0
 
LVL 7

Accepted Solution

by:
bluV11t earned 125 total points
ID: 22861847
Oh! Sorry for posting JS code!

Try:

if grandTotal = 0 and totalCountTHIS = 0 then
finalAverage = 0
else
finalAverage = grandTotal / totalCountTHIS
end if
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

I would like to start this tip/trick by saying Thank You, to all who said that this could not be done, as it forced me to make sure that it could be accomplished. :) To start, I want to make sure everyone understands the importance of utilizing p…
Have you ever needed to get an ASP script to wait for a while? I have, just to let something else happen. Or in my case, to allow other stuff to happen while I was murdering my MySQL database with an update. The Original Issue This was written…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

757 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now