När jag hämtar data från databasen (tex i ett forum) så använder jag följande kod: När du skriver Set Rst = Con.Execute(sql) så skapar du data i Rst. Skillnaden med .Open är att du inte kan köra .MoveFirst, .RecordCount m.fl. Alltså är ditt recordset server -sided. Det finns flera anledningar till varför du skall eller inte skall använda detta. Måste jag köra .Close på mitt sätt?Fråga angående RecordSets...
<code>
<%
' Kopplar mig till databasen
SQL = "Select * From Tabell"
Set RS = Con.Execute(SQL)
Do until RS.EOF
'Loopar igenom databasen
RS.MoveNext
Loop
' Kopplar ner.
%>
Min fråga lyder:
Vad blir det för skillnad om jag skapar ett RecordSet object först och lägger det där i?
Och vad är det jag gör när jag skriver "Set RS = Con.Execute(SQL)"??
MVH
Mattias JSv: Fråga angående RecordSets...
Läs mer om detta i artikeln server/client sided recordsets.
Hälsningar
/PelleSv: Fråga angående RecordSets...
För jag använder ju aldrig .open!
/MattiasSv: Fråga angående RecordSets...
generellt så brukar jag alltid ge rådet att aldrig använda con.execute för att returnera recordsets. Som pelle säger finns det en miljon anlednignar till varför, bla så är prestandan bättre om du använder rs.open istället ... speciellt om du dessutom skippar att skapa ett explicit connecion object utan låter recordsettet göra det dynamiskt själv istället (dvs skickar en connection string som argument till activeconnection). Skall nämnas att om man öppnar mer än 1 recordset åt gången kan det vara intressant med explcicta connetion object igen ...