webForumDet fria alternativet
Logga in / Bli medlem

rs.Open

ASP

3 svar · 200 visningar · startad av casca

Medlem sedan feb. 20005 891 inlägg
Frågan#1

Hmmm...
Hur använder man "open" i Recordset-grejset? Fick källkod från Ricki (för studiesyfte förstås ;)) och det står typ:

rs.open SQL, Conn, 1, 2

SQL är en variabel med en SQL-sats, det vet jag och Conn är instansen för ADODB.Connection men varför ska man ha med 1 och 2? :q

Vill gärna ha förklaring på detta... :)

Medlem sedan dec. 19996 721 inlägg
#2

1:an och 2:an bestämmer vilken cursor-typ resp. lock-typ, som recordsetet ska ha. I VBScript anges dessa med siffror, men i Visual Basic anges de med t.ex

rs.open SQL, Conn, adForwardOnly, adLockOptimistic

VBScript har inte dessa konstanter definierade, så man använder dess egentliga värden i stället, t.ex 1 och 2. Inkluderar man filen adovbs.inc så kan man dock använda konstanterna i stället.

Cursor-typ anger hur cursorn fungerar (den pekare som stegar genom recordsetet, när du t.ex. gör en do until rs.eof-loop). Det normala är typen adForwardOnly (värdet 0), som endast tillåter att man går framåt i recordsetet.

Lock-typ anger om den record du tittar på ska vara låst på något sätt. En vanlig variant är adLockOptimistic (värdet 2) som endast låser när man kör Update.

När man kör det vanliga

set rs=conn.execute(SQL)

så är det samma sak som

rs.open SQL,conn,0,0

eller

rs.open SQL,conn,adForwardOnly,adLockReadOnly

Medlem sedan juni 2000144 inlägg
#3

En annan liten fråga...är det någon skillnad i prestande mellan som olika skrivsätten?

set rs=conn.execute(SQL)

eller

rs.open SQL,conn,0,0

Medlem sedan mars 20002 836 inlägg
#4

Jepp, det är det.

Kolla in dessa artiklar:
Enhancing Performance in ASP - Part 1
Enhancing Performance in ASP - Part 2

cya
//PatrikB

257 ms totalt · 4 externa anrop · v20260731065814-full.05830320
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)