strSQL = "SELECT TOP 20 * FROM Gastbok " & _
" ORDER BY id DESC"
strConn = "DSN="
Set objConn = Server.CreateObject("ADOdb.Connection")
objconn.Open strConn
arrMess = objConn.Execute(strSQL).GetRows()
objConn.Close()
Set objConn = Nothing
Response.Write "<p><strong>De 20 senaste skribenterna:</strong><p>"
if IsArray(arrMess) Then
For I = 0 To UBound(arrMess,2)
strMeddelande = arrMess(0,I)
Response.Write "<p>"& strMeddelande&"</p>"
Next
end if
Red: Kolla PatrikB:s paging under wF script, det är uppbyggt med Getrows() också. ;)
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?
Tack så mycket! En fråga bara, går det bara att skriva ut det som en mängd? Om man vill kunna bestämma varje recset hur gör man då dvs, jag vill strukturera hur det skall skrivas ut..
------------------
"Ni tre går och bildar en kvadrat" (Rolf Zetterlund under ett träningspass)
strSQL = "SELECT TOP 20 Namn, Datum, Mess FROM Gastbok " & _
" ORDER BY id DESC"
strConn = "DSN="
Set objConn = Server.CreateObject("ADOdb.Connection")
objconn.Open strConn
arrMess = objConn.Execute(strSQL).GetRows()
objConn.Close()
Set objConn = Nothing
Response.Write "<p><strong>De 20 senaste skribenterna:</strong><p>"
if IsArray(arrMess) Then
For I = 0 To UBound(arrMess,2)
strNamn = arrMess(0,I)
dteDatum = arrMess(1,I)
strMeddelande = arrMess(2,I)
Response.Write "<p>Inlägget gjort av "& strNamn &" den "& dteDatum &"</p>" & _
"<p>Meddelande:<br> "& strMeddelande &" </p>"
Next
end if
Vet ej riktigt vad du menar, fattade jag dig fel så får du höjta. Du kan strukturera det med tabeller också om du vill. Det är bara att bestämma hur du vill presentera datan.
red: första definierade fältet i SQL-frågan får nr 0 i arrayen, andra fältet nr 1, 3:e nr 2 osv.
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?
Nej, du behöver inte loopa. Det finns en funktion som heter getstring.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdmthgetstringmethod(recordset)ado.asp
------------------ essentitia preter non sans multiplicandum
Tack för svaren! Det som Jörgen visa verkar vara precis det jag är ute efter =) Det är måste ju vara mycket mer prestanda-snålt va? I och med att kopplingen stängs snabbt som en blixt.
En fråga till om jag hämtar alla kolumner från en DB ska jag även då skriva specifikt vilka kolumner jag hämtar ifrån? dvs
strSQL = "SELECT TOP 20 Namn, Datum, Mess FROM Gastbok " & _
------------------
"Ni tre går och bildar en kvadrat" (Rolf Zetterlund under ett träningspass)
Jag tycker att du skall skriva ut kolumnerna explicit. Det är mer dokumentativt och i vissa fall har det betydelse i vilken ordning man anger kolumnerna (i samband med lobar.)
Om det är effektivare, ur prestandasynpunkt, att skriva
select * from ogrish
eller
select aleb,caleb from ogrish
tycker jag är ovdikommande. Den eventuella skillnad som finns är försumbar i de flesta fall. Om man vill optimera kod, så är det inte det första man tittar på.
------------------ essentitia preter non sans multiplicandum
Hej, vill du presentera datan i tabellformat och på ett ställe, dvs inte dutta ut datan på flera ställen är Getstring prestandamässigt bättre (du slipper loopen).
Den tar ut alla data ur ett recset object och formaterar en tabellstruktur i en textsträng. Även med metoden Getstring kan man stänga connectionobjectet direkt.
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?
Njea, det är en smaksak, vill du presentera det i tabellformat på ett ställe så passar även metoden Getstring. Jag använder enbart Getrows och från tidigare diskussioner här på wF verkar de flesta hålla sig till Getrows. Annars kan det se ut något i stil med:
strMyMess = objRS.GetString(,,"</td><td>","</td></tr><tr><td>")
objRS.Close()
set objRS = Nothing
objConn.Close()
set objConn = Nothing
with Response
.write("<table><tr><td>")
.write(strMyMess)
.write("</td></tr></table>")
end with