Guffa | Foto | Programmering

Disconnected recordset

Ett disconnected recordset är ett recordset som man frikopplar från databasen. Vad är då vitsen med detta?

Det som händer när man frikopplar recordsetet är att det då automatiskt hämtar all data som behövs ifrån databasen, innan den släpper databaskopplingen.

Recordsetet behöver sedan inte databaskopplingen, utan vi kan stänga den, och fortfarande jobba med recordsetet.

Fördelar och nackdelar

+ Sparar databasresurser, eftersom recordsetet inte arbetar mot databasen.
+ Blob-fält (text/PM) fungerar precis som vanliga fält, man kan alltså använda dem flera gånger.
+ Recordsetet stöder bokmärken, man kan alltså använda funktioner som RecordCount och AbsolutePage.

- All data för recordsetet läggs i arbetsminnet, vilket gör att man inte bör ha alltför mycket data.
- Man kan inte använda recordsetet för att uppdatera databasen.

Hur man gör

Det enklaste sättet att skapa ett disconnected recordset är att ändra egenskapen CursorLocation på Connection-objektet. Då ärver alla recordset som skapas med det objektet den egenskapen.

' placera markören på klientsidan
objConnection.CursorLocation = 3
' öppna recordsetet
Set objRS = objConnection.Execute(strSQL)
' ta bort databaskopplingen från recordsetet
Set objRS.ActiveConnection = Nothing

Man kan även sätta egenskapen CursorLocation direkt på recordset-objektet:

' skapa ett recordset-objekt
Set objRS = Server.CreateObject("ADODB.Recordset")
' placera markören på klientsidan
objRS.CursorLocation = 3
' öppna recordsetet
objRS.Open strSQL, objConnection
' ta bort databaskopplingen från recordsetet
Set objRS.ActiveConnection = Nothing

Göran Andersson