Avatar billede bramsing Nybegynder
22. september 2004 - 22:07 Der er 5 kommentarer og
2 løsninger

select count * as antal where - overflow

Hvad går der galt i denne kode...

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("/data/poll.mdb")
Conn.Open DSN
strSQL1 = "SELECT COUNT(*) AS antal FROM dansk WHERE afstemning = 'ja' "
Set rsY = Conn.Execute(strSQL1)
if rsY.eof OR rsY.bof then
Y = 0
else
Y = rsY("antal")
end if

strSQL2 = "SELECT COUNT(*) AS antal FROM dansk "
Set rsA = Conn.Execute(strSQL2)
if rsA.eof OR rsA.bof then
A = 0
else
A = rsA("antal")
end if

Result = int(Y / A) * 100


Det går "kun" galt når der enten ikke nogle records i databasen eller der ikke er nogle records med 'ja'....
Avatar billede bramsing Nybegynder
22. september 2004 - 22:11 #1
Jeg glemte at skrive fejlen når det går galt...

Microsoft VBScript runtime error '800a0006'

Overflow
/poll.asp, line 63 (denne linie: Result = int(Y / A) * 100)
Avatar billede eagleeye Praktikant
22. september 2004 - 22:13 #2
Når du bruger count vil den stadig give en post selvom den ikke har talt nogle den er bare lig Null så prøv:

Set rsY = Conn.Execute(strSQL1)
if len(""&rs("antal"))=0 then
Y = 0
else
Y = rsY("antal")
end if


Vil Y være 0? Hvis A er 0 kommer der en Divide By Zero fejl
Avatar billede michaelfp Nybegynder
22. september 2004 - 22:15 #3
Mig bekendt kan man aldrig dividere med 0 - så mon ikke su skal have en validering ind på Resulet = ?
F.eks
If A <> 0 Then
  Result = int(y/A)*100
Else
  ?
End if
Avatar billede bramsing Nybegynder
22. september 2004 - 22:17 #4
Problemet er at såvel A som Y kan være = 0
Avatar billede eagleeye Praktikant
22. september 2004 - 22:23 #5
Ok, men man kan ikke divere med 0. Så du må også tilføje noget som michaelfp har vist så du ikke får fejl med A=0
Avatar billede bramsing Nybegynder
22. september 2004 - 22:34 #6
HE HE.... Nu virker det fint nok når der ikke er poster i databasen.... Men den kan ikke regne når der er poster i databasen :-s ... eagleeye lægger du også et svar så sender jeg jer begge 30 point ;-)
Avatar billede eagleeye Praktikant
22. september 2004 - 22:36 #7
Ok ;) det gør jeg da gerne.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester