DustyMedlem sedan juli 2000103 inlägg Ganska grön på detta. Om man vill optimera databaskopplingar till max skall man då använda disconnected recordsets när man ska hämta ut information?
Ska jag alltså skriva:
Connect.Open "..."
strVisa = "SELECT ... FROM ... WHERE ... ORDER BY ..."
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.CursorLocation = 3
RecSet.Open strVisa, Connect
Set RecSet.ActiveConnection = Nothing
Connect.Close
...plocka ut RecSet("variabler"), loopa och greja...
...istället för:
Connect.Open "..."
strVisa = "SELECT ... FROM ... WHERE ... ORDER BY ..."
Set RecSet = Connect.Execute(strVisa)
...plocka ut RecSet("variabler"), loopa och greja...
RecSet.Close
Connect.Close
Och var lägger jag in RecSet.Close i första exemplet?
------------------
That you're paranoid doesn't mean you're not being monitored...
Monitora
[Redigerat av Dusty den 20 jan 2001]
DustyMedlem sedan juli 2000103 inlägg Äh, glöm det där med syntaxen. Den har jag koll på nu, efter att ha letat mig igenom msdn.microsoft.com. ;)
Prestanda och användingsområden stod det dock inte mycket om. Någon som vet något om när man bör använda disconnected recordsets?
------------------
That you're paranoid doesn't mean you're not being monitored...
Monitora
VideMedlem sedan dec. 19998 577 inlägg Disconnected recordset = Ett recordset som inte är kopplat till databasen.
Jag brukar lagra data i tre olika sorts objekt eller applikationer. Det är Array (för enklare funktioner när jag inte skall söka i den eller sortera), Scripting Dictionary (När jag vill kunna bestämma ett värde till varje 'item', och på så sätt plocka fram enskilda element) och sist har vi Disconnected Recordset (Denna använder jag vid lite mer avancerad datalagring där jag behöver sortera på flera fält, eller har flera fält som skall tillhöra samma post.)
Att använda recordsets mot en databas skall man vara väldigt sparsam med... enda anledningen varför jag skulle använda ett recordset för att öppna databasen med, är om jag skall dela upp resultatet på olika sidor, s.k "paging"...
För när man använder recordset så måste man själv skapa två objekt, vilket är väldans onödigt och lite mer resurskrävande, istället så skall man använda det traditionella connectionobjeketet för att hämta datat ur databasen, varvid ett recordset skapas automatiskt och du kan hämta den info du begärde via SQLsatsen.
Möjligtvis finns det flera aspekter, men det få någon annan dra... ;)
Lycka till!
Mvh, Vide
------------------
Function onLick(name)
Punch.name(in_the_ear)
End Function
Jourhavande Vide
[Redigerat av Vide den 21 jan 2001]
DustyMedlem sedan juli 2000103 inlägg Tack för svaret.
Men, eh... inte riktigt vad jag menade, även om det naturligtvis också är intressant. :) Jag talar inte om recordsets som aldrig kopplats till en databas, jag talar om recordsets som kopplats till och sedan kopplats bort från en databas utan att stängas. Så att datan fortfarande går att komma åt.
Ang. det andra du sa: Dictionary på application-nivå verkar bara strula. Går det att använda ett okopplat (som aldrig kopplats någonstans) recordset på application-nivå istället?
------------------
That you're paranoid doesn't mean you're not being monitored...
Monitora