webForumDet fria alternativet

Hitta ett värde i recordset utan loop?

ASP

6 svar · 270 visningar · startad av Lukaspojken

Medlem sedan maj 20011 312 inlägg
Frågan#1

Finns det ett enkelt sätt för att hitta ett värde i ett recordset istället för att loopa igenom det? Det jag söker efter är en liknande funktion som finns för array:s, dvs

IF ExistsInArray(arrRecords, user_ID) THEN

Nån som vet?

Medlem sedan aug. 20003 575 inlägg
#2

Jag antar att ExistInArray i sin tur loopar och söker igenom arrayen. Men för recordset finns det nog ingen färdig om du har sökt efter det på msdn.

Medlem sedan maj 200010 687 inlägg
#3

Du kan ju använda dig av rs.Filter..?

Medlem sedan dec. 19998 577 inlägg
#4

Antingen filter som Erik nämner, om du vill få alla poster som innehåller sökordet (eller sökorden), eller så kan du använda .Find som sätter markören på första posten där en förekomst av ordet förekommer.

Medlem sedan maj 20011 312 inlägg
#5

Tack för tipset, jag ska ta och söka lite mer om detta på nätet. Förresten vilket är det optimalaste - Find eller Filter? Recordsetet kommer ha kring 200 rader. Det jag behöver matcha med är user_id.

Medlem sedan maj 20011 312 inlägg
#6

Här är två sidor från Devguru som tar upp detta med find och filter på ett bra sätt om någon annan skulle vara intresserad.

http://www.devguru.com/Technologies/ado/quickref/recordset_find.html

http://www.devguru.com/Technologies/ado/quickref/recordset_filter.html

Medlem sedan maj 200010 687 inlägg
#7

Kan inte tänka mig att det är någon större prestandaskillnad.
Använd filter om du bara vill ha en rad och använd find om du vill komma till en rad.

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