webForumDet fria alternativet
Logga in / Bli medlem

Massa RecSet till 1?

Databaser & SQL

8 svar · 301 visningar · startad av Bosse168

Medlem sedan nov. 20031 018 inlägg
Trådstart#1

Någon som vet hur man får ihop alla dessa recset till 1? tror det skulle göra min databas glad :)
Jag blir helt förvirrad själv.

Set rs = Connect.Execute("SELECT Count(username) From members")

Set rs2 = Connect.Execute("SELECT Count(username) From members Where status = 'online'")

Response.Write("<b>"& rs2.Fields(0) &"</b> av <b>"& RS.Fields(0) &"</b><br>")

rs.Close : Set rs = Nothing
rs2.Close : Set rs2 = Nothing

Set rs = Connect.Execute("Select id From gb Order BY id Desc LIMIT 1")

Response.Write("<b>"& rs("id") &"</b><br>")

rs.Close : Set rs = Nothing

Set rs = Connect.Execute("Select messageid From mailin Order BY messageid Desc LIMIT 1")

Response.Write("<b>"& rs("messageid") &"</b><br>")

rs.Close : Set rs = Nothing

 
Set rsForum = Connect.Execute("SELECT Count(postid) From forumpost")
Response.Write("<b>"& rsForum.Fields(0) &"</b><br>")
Medlem sedan dec. 200012 464 inlägg
#2
SELECT 'Count',Count(username) , 
  sum(case when status = 'online' then 1 else 0 end)
From members
union all
select 'gb' , max(id), 0  from gb
union all
select 'mailin', max(messageid),0 from mailin

Vilka index du har är mer betydelsefullt för prestanda än att du har ett anrop istället för fyra.

Medlem sedan nov. 20031 018 inlägg
#3

Missade att få med:
Set rsForum = Connect.Execute("SELECT Count(postid) From forumpost")

Och hur gör jag för att sedan skriva ut resultaten av räkningarna?

Medlem sedan dec. 200012 464 inlägg
#4
sql = "SELECT 'Count',Count(username) , 
  sum(case when status = 'online' then 1 else 0 end)
From members
union all
select 'gb' , max(id), 0  from gb
union all
select 'mailin', max(messageid),0 from mailin
union all
SELECT 'posts',Count(postid) , 0 From forumpost"
set rs = connect.execute(sql)
while not rs.eof
  if rs(0) = "Count" then
     response.write rs(1),rs(2)
  else
  ..
   end if
   rs.movenext
wend

I princip. Med lite embellering kan det nog bli ganska vackert.

Medlem sedan nov. 20031 018 inlägg
#5

får det här fel messet nu:

Microsoft VBScript runtime error '800a01c2'

Wrong number of arguments or invalid property assignment: 'Response.write'

/start.asp, line 22

Och håller med om att det blir vackert. :)

Medlem sedan juni 200032 967 inlägg
#6
  if rs(0) = "Count" then
     response.write rs(1)  & " - " & rs(2)
  else

Eller hur du nu vill presentera det.

Medlem sedan nov. 20031 018 inlägg
#7

Funkar klocka men det skriver bara ut antalet medlemar och hur många som är online.

Medlem sedan juni 200032 967 inlägg
#8

I else-blocket lägger du koden för att skriva ut resten. Så: vad har du lagt i else-blocket?

Medlem sedan nov. 20031 018 inlägg
#9

ohh vad dum jag är skyller på bakfyllan. ;)

252 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)