webForumDet fria alternativet

Bra databashämtning?

9 svar · 167 visningar · startad av Lukaspojken

LukaspojkenMedlem sedan maj 20011 312 inlägg
#1

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?

LukaspojkenMedlem sedan maj 20011 312 inlägg
#2

Ingen som har en liten kommentar...:)

LarsGMedlem sedan dec. 200012 464 inlägg
#3

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

rymdknarkMedlem sedan maj 2000175 inlägg
#4

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

LukaspojkenMedlem sedan maj 20011 312 inlägg
#5

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?

rymdknarkMedlem sedan maj 2000175 inlägg
#6

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
#7

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]

LukaspojkenMedlem sedan maj 20011 312 inlägg
#8

Vad är fördelen med att använda "disconnected recordset"?

PatrikBMedlem sedan mars 20002 836 inlägg
#9

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*

LukaspojkenMedlem sedan maj 20011 312 inlägg
#10

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...

134 ms totalt · 3 externa anrop · v20260731065814-full.7de19299
130 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)