Avatar billede getalife Nybegynder
27. februar 2001 - 00:04 Der er 26 kommentarer og
2 løsninger

Count

Jeg skal trække et antal rækker og * ud fra en DB.
Kan jeg gøre det vha:
strSQL = \"SELECT * FROM Newstab\"
strSQL2 = \"SELECT count(ID) FROM Newstab AS antal\"
Set rs = Server.CreateObject(\"ADODB.Recordset\")
set rs = DBConn.Execute(strSQL)
set rs2 = DBConn.Execute(strSQL2)

Eller:
\"SELECT (SELECT count(ID) FROM Newstab) AS antal, * FROM Newstab\"

Ingen af dem virker for mig. Dvs * virker godt nok i begge to. Men jeg ikke få fat på antal. Hvad gør jeg forkert?
Avatar billede cbp Nybegynder
27. februar 2001 - 08:09 #1
strSQL2 = \"SELECT count(ID) FROM Newstab AS antal\"

skal være:

strSQL2 = \"SELECT count(ID) AS antal FROM Newstab\"

Så skulle det gerne virke.
Avatar billede pierrehusted Nybegynder
27. februar 2001 - 08:10 #2
Prøv med

Select count(*) as antal from Newstab
Avatar billede getalife Nybegynder
27. februar 2001 - 16:10 #3
Det virker stadig ikke.
Kan i se hvor jeg har klokket i det?

<%
Set DBConn = Server.CreateObject(\"ADODB.Connection\")
DBConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"news.mdb\")
%>

<%
Dim antal
strSQL = \"SELECT * FROM Newstab\"
strSQL2 = \"SELECT count(ID) AS antal FROM Newstab\"
Set rs = Server.CreateObject(\"ADODB.Recordset\")
set rs = DBConn.Execute(strSQL)
set rs2 = DBConn.Execute(strSQL2)

Response.Write(\"<table border=\'0\' cellpadding=\'0\' cellspacing=\'0\' width=\'800\'>\")
Response.Write(\"<tr>\")
do until rs.EOF
Response.Write(\"<td width=\'25\' valign=\'top\' align=\'right\'><img src=\'images/newspil.gif\'></td>\")
Response.Write(\"<td width=\'160\' valign=\'top\' class=\'news\'><a href=\'news/popup.asp?news=\" & rs(\"ID\") & \"\' target=\'_blank\'><div class=\'news_header\'>\" & rs(\"Header\") & \"</div>\" & rs(\"Text\") & \"</a></td>\")
rs.movenext
loop
Response.Write(\"</tr>\")
Response.Write(\"</table>\")
Response.Write(antal)
%>
Avatar billede pierrehusted Nybegynder
27. februar 2001 - 16:14 #4
Set rs = Server.CreateObject(\"ADODB.Recordset\")
set rs = DBConn.Execute(strSQL)
set rs2 = DBConn.Execute(strSQL2)


Du sætter to ting til at hedde \'rs\' - er det rigtigt ?
Avatar billede getalife Nybegynder
27. februar 2001 - 16:15 #5
yup
Avatar billede pierrehusted Nybegynder
27. februar 2001 - 16:17 #6
Men skal der så ikke også være en CreateObject til rs2 ??
Avatar billede getalife Nybegynder
27. februar 2001 - 16:20 #7
uhm... i dunno... jeg er blot en newbie..
Avatar billede getalife Nybegynder
27. februar 2001 - 16:22 #8
Nope.. hjælper ikke
Avatar billede pierrehusted Nybegynder
27. februar 2001 - 16:23 #9
Du udskriver ikke noget fra rs2 op noget tidspunkt gør du ??
Avatar billede getalife Nybegynder
27. februar 2001 - 16:26 #10
Jo.. SELECT count(ID) AS antal FROM Newstab gemmer antallet af rækker i variablen \"antal\".
Den skriver jeg ud i sidste linie
Avatar billede pierrehusted Nybegynder
27. februar 2001 - 16:30 #11
OK, du skal udskrive den som rs2(\"antal\")
Avatar billede winkill Nybegynder
27. februar 2001 - 16:32 #12
I sidste linie skriver du Response.Write(antal) jeg kan dog ikke se at variablen antal bliver sat nogen steder.
Hvis jeg forstår hvor du vil hen skal der stå Response.Write(rs2(\"antal\")) da det er jo recordet antal i rs2 du vil udskrive.

Desuden ville jeg fjerne linien Set rs = Server.CreateObject(\"ADODB.Recordset\") da du i næste linie sletter dette nye recordset og opretter et nyt med Set rs = DBConn.Execute(...)

Jeg håber det det funker.

Troels Aká WinKill
Avatar billede getalife Nybegynder
27. februar 2001 - 16:33 #13
Suk.. ja..
Tak skal du ha, du er en guttermand.

Jeg troede at den blev gemt som en ganske normal variabel.. men åbenbart ikke ;o)


Avatar billede getalife Nybegynder
27. februar 2001 - 16:35 #14
Sådan går det når folk ikke forklarer sig ordenligt... Troels.. ;o)
Avatar billede winkill Nybegynder
27. februar 2001 - 16:40 #15
Gid den gjorde, men så skal du bruge noget ala antal = rs2.GetString(og en masse stads som jeg ikke helt har styr på) eller evt. antal = Conn.Execute(\"SELECT COUNT.......\").GetString() men jeg er ikke helt sikker på hvordan det lige fungerer...

I øvrigt ville jeg indsætte følgende linier til sidst i koden:

rs.close
rs2.close
dbconn.close
set rs = Nothing
set rs2 = nothing
set dbconn = nothing

Det er ikke nødvendigt på en Win2k Adv Server hvis den er configureret korrekt, men for god ordens skyld er det godt altid at \"rydde op\" efter sig... Du ved, tømme askebæret, sætte kaffekoppen i opvaskemaskinen og lukke/slette alle Recordsets og Connections - det sparer både kr. til rengøringspersonalets lønninger og det sparer kr. til køb af ekstre ramblokke til serveren ;o)

Snik snak, jeg kunne blive ved, men nu skal i nok få fred *G*

T/W
Avatar billede winkill Nybegynder
27. februar 2001 - 16:42 #16
Hvad snakker du om Kim ;o) Jeg bøjede det da i neon, skar det ud i pap, stemplede det på din nummerplade, tegnede det på den store tavle og jeg fik endda skrevet en sang om det.... eller noget... tror måske jeg har fået for meget kaffe idag.
Avatar billede getalife Nybegynder
27. februar 2001 - 16:42 #17
Du er en syg mand Troels.. *G*
Avatar billede getalife Nybegynder
27. februar 2001 - 16:43 #18
Aaah.. jeg har tabt den ene nummerplade.. might be that..
Avatar billede winkill Nybegynder
27. februar 2001 - 16:43 #19
Yeps, 38,8 i feber.
Avatar billede getalife Nybegynder
27. februar 2001 - 16:45 #20
Hmm.. desuden skriver du som en brækket arm.. kunne ikke læse hvad du havde skrevet i neon.. same goes for tavlen.. du er tonedøv så jeg fattede ikke din sang og.. Troels.. du ved godt du ikke må lege med knive..
Avatar billede getalife Nybegynder
27. februar 2001 - 16:46 #21
38,8?? Fy for pokker.. kan du se at komme til lægen
Avatar billede winkill Nybegynder
27. februar 2001 - 16:49 #22
Ok, noget der hen ad i hvert tilfælde, men så længe jeg kan kode skal jeg sku ikke til lægen *G*

Apropos, hvornår åbner den første online-læge ?
Avatar billede getalife Nybegynder
27. februar 2001 - 16:49 #23
Avatar billede getalife Nybegynder
27. februar 2001 - 16:50 #24
Hva så hvis jeg vil gange min var med et fast tal?
Avatar billede winkill Nybegynder
27. februar 2001 - 16:55 #25
Response.Write(rs2(\"antal\") * 44456413)

Og hvis det er gemt som Text/Char/VarChar/Bit eller noget andet skummelt kan du gøre så\'n her:

Response.Write(CInt(rs2(\"antal\")) * 44456413)
\' hvis jeg ikke husker helt galt :o)
Avatar billede getalife Nybegynder
27. februar 2001 - 16:57 #26
arh.. det er jo for nemt..
Avatar billede winkill Nybegynder
27. februar 2001 - 17:02 #27
Det var hun også igår... eller noget *G*
Avatar billede getalife Nybegynder
27. februar 2001 - 17:03 #28
*suk*
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
Computerworld tilbyder specialiserede kurser i database-management

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