guckenMedlem sedan sep. 2001287 inlägg function antal_lag(div)
sql = "SELECT Anv_id FROM Users Where div = "& div &""
set rs=databas.execute (sql)
do while rs.eof <> true
x = x +1
rs.movenext
if x = 40 then
antal_lag = true
else
antal_lag = false
end if
end function
I felmeddelandet står det att den förväntar en program satts på
raden med end function.
vad menar den med det? från vad jag ser så ska allt vara rätt,
jag har skrivit ut variabeln div och jag vet att den är 15 som den ska vara.
solbulleMedlem sedan mars 20015 287 inlägg Ska det inte vara en: loop innan du avslutar funktionen?
Använder du den koden för o kolla om det är 40 st poster i databasen?
Felet är egentligen att du måste ha Loop med, men jag ser hela funktionen som ett stort fel...
emissionMedlem sedan dec. 19996 721 inlägg du har glömt loop efter do while-loopen.
Dessutom är det en ineffektiv funktion
function antal_lag(div)
sql = "SELECT COUNT(Anv_id) FROM Users Where div = "& div &" HAVING COUNT(Anv_id)=40"
set rs=databas.execute (sql)
antal_lag = (NOT rs.EOF)
end function
Förutsatt att din DBMS klarar HAVING. COUNT ska du använda i vilket fall som helst.
LarsGMedlem sedan dec. 200012 464 inlägg Det saknas en loop som avslutar do while i din kod.
function antal_lag(div)
sql = "SELECT Anv_id FROM Users Where div = "& div &""
set rs=databas.execute (sql)
do while rs.eof <> true
x = x +1
rs.movenext
loop
if x = 40 then
antal_lag = true
else
antal_lag = false
end if
end function
Det är ineffektivt att koda på det sättet som du har gjort. Det är bättre att lägga så mycket av beräkningarna som möjligt direkt i sql-koden.
function antal_lag(div)
sql = "SELECT count(Anv_id) FROM Users Where div = "& div
set rs=databas.execute (sql)
antal_lag = cint(rs(0)) = 40
end function
Skall funktionen bli sann om det är exakt 40 lag eller om det är minst 40 lag?
guckenMedlem sedan sep. 2001287 inlägg tack, det löste hela biffen, var ett tag sedan jag lekte med det här så hadde vist glömt lite..
solbulleMedlem sedan mars 20015 287 inlägg Schysst svarsfrekvens. ;)
LarsGMedlem sedan dec. 200012 464 inlägg
Vad är having till för?
Having behövs egentligen inte, det går alltid att skriva om
SELECT antal FROM (select count(anv_id) as antal from Users Where div = 4711) where antal = 40
I having så kan du använda aggregatfunktioner vilket inte är tillåtet i where.
Having används oftast i samband med group by för att begränsa urvalet av grupper, t.ex.
select sum(amount),guest from bill natural join guests
group by guest having sum(amount) > 1000
för att få fram alla gäster som har räkningar med ett belopp på mer än 1000.
Egentligen så behövs inte group by heller utan det går också att skriva om. (Lämnas som uppgift till läsaren.)
guckenMedlem sedan sep. 2001287 inlägg Kompileringsfel i Microsoft VBScript (0x800A0400)
Programsats förväntas.
på raden med end function.
jag blir galen, vad menar han?? vad vill han igentligen av mig?
function Lag2(lag1,div)
'nu ska den hämta ett motståndarlag.
sql = "SELECT nick FROM User WHERE div = "&div&" ORDER BY Anv_id"
set rs=databas.execute (sql)
do while not rs.eof
lag2 = rs.fields("nick")
if lag2 = lag1 then rs.movenext
sql = "SELECT * FROM DivMatch WHERE DivDiv = "&div&" AND DivLag1 = '"&lag1&"' AND DivLag2 = '"&lag2&"'"
set rec=databas.execute (sql)
if not rec.eof then
rs.movenext
else
end if
end function
LarsGMedlem sedan dec. 200012 464 inlägg det saknas en avslutande loop till din do while
function Lag2(lag1,div)
'nu ska den hämta ett motståndarlag.
sql = "SELECT nick FROM User WHERE div = "&div&" ORDER BY Anv_id"
set rs=databas.execute (sql)
do while not rs.eof
lag2 = rs.fields("nick")
if lag2 = lag1 then rs.movenext
sql = "SELECT * FROM DivMatch WHERE DivDiv = "&div&" AND DivLag1 = '"&lag1&"' AND DivLag2 = '"&lag2&"'"
set rec=databas.execute (sql)
if not rec.eof then
rs.movenext
end if
loop
end function
guckenMedlem sedan sep. 2001287 inlägg tack.
tror du att du har lust att hjälpa mig med en liten sak privat?
jag vill inte skriva det här i forumet.
LarsGMedlem sedan dec. 200012 464 inlägg Du får väl skicka ett privat meddelande så får vi se vad det är.