Idag när jag hämtar data...så öppnar jag databasen...sen så lägger jag in det i html-dokumentet och när jag är färdig så stänger jag det...likt:
Förnamn: <% =RecSet("Namn")%>
etc
Sen har jag läst och hört många säga att man ska stänga av databasen så snabbt som möjligt...och det snabbaste sättet jag kom fram till var att läsa in alla recset in i variabler. Dessa variabler används sedan i html-dokumentet:
Förnamn: <% =fNamn%>
etc.
Ökar detta prestandan mycket? Finns det nåt annat sätt som ni använder er av?
Ingen som har en liten kommentar...:)
LarsGMedlem sedan dec. 200012 464 inlägg Om du vill vara maximalt effektiv (och fortfaranade använda ADO/ASP) så använder du metoden getrows som hämtar all data till klienten i ett anrop.
Det finns några kodexempel här som du kan hitta om du söker.
------------------
essentitia preter non sans multiplicandum
Eller så kan du använda dig av "disconnected recordsets", vilket är ett recordset som inte har ngn koppling til en databas....
skrev ett liknande exempel tidigare: http://cgi.webforum.nu/wf/Forum11/HTML/004372.html
Sökte på det ordet lite men blev inte klokare...man läser in datan in i en array...vad är mening med det? Ska man använda denna metod om vid presentationssidor i en community?
Getrows dumpar in tabellerna från din databasförfrågan in i en tabell....
Att använda sig av bortkopplade recordsets är ungefär likadand, fast man behåller recordsets'es istället för att spara värderna i en array.
PatrikBMedlem sedan mars 20002 836 inlägg ja, varför inte?
Ett litet kodexempel?
inte sååå stor skillnad att loopa igen en array än ett recordset.
strSQL = "SELECT id, annons FROM annonser"
Set objConn = Server.CreateObject("ADODB.Connection")
objconn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("/db-dir/db-file.mdb")
Set objRS = objConn.Execute(strSQL)
If objRS.EOF Then
arrRecordSet = ""
Else
arrRecordSet= objRS.GetRows
End If
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
If IsArray(arrRecordSet) Then
For I = 0 To UBound(arrRecordSet,2)
intId = arrRecordset(0,I)
strAnnons = arrRecordSet(1,I)
Response.Write "<A href="annonser.asp?aid=" & intId & ">" & _
strAnnons & "</A><BR>"
Next
Else
Response.Write "Inga poster hittades."
End If
Hoppas att du får lite ideer om hur du kan använda dig av .GetRows istället för den vanliga "segare" hämtningen *ler*
cya,
PatrikB
------------------
*Det jämnar ut sig sa han som sket i byxan och satte sig ned*
[Redigerat av PatrikB den 22 maj 2001]
Vad är fördelen med att använda "disconnected recordset"?
PatrikBMedlem sedan mars 20002 836 inlägg
Getrows dumpar in tabellerna från din databasförfrågan in i en tabell....
Nej, den dumpar in ditt recordset i en Array. Det är metoden GetString som man kan dumpa in recordsetet i tex en tabell.
cya,
PatrikB
------------------
*Det jämnar ut sig sa han som sket i byxan och satte sig ned*
Fasen vad lurigt det här är...jag lånade en fet asp bok nu från biblioteket så den ska nog ge lite svar...