webForumDet fria alternativet

Översätta id från recordset position till array position

4 svar · 447 visningar · startad av Mattias Nordin

Mattias NordinMedlem sedan dec. 20051 056 inlägg
#1

Jag använder GetRows() för att lägga min sökning i en array lista enligt följande:

...
set rs = connect.execute(sql)	
avarGetRowsArray = rs.GetRows()

På position 14 hämtar jag databasens rad id enligt:

varValtFotoDatabasId = avarGetRowsArray(0,14)

Det jag nu skulle behöva åstakomma är ett räkna vilken position i ett recordset en viss rad id finns på. Jag försöker alltså översätta ett känt rad id i databasen till positionen i arrayen. Arrayen motsvarar frågan:

sql = "SELECT * FROM T_bild_register WHERE album_id = " &sAlbumDbId &" ORDER BY foto_taget_datum, uppladdad_datum "

Hmmm... undrar om det går att förstå ovan ??!!

:stud

LedelMedlem sedan dec. 2004736 inlägg
#2

Du har alltså ett känt "rad id" från databasen, som finns på position avarGetRowsArray(i,14) och du vill komma fram till vilken rad det här ID:t finns på?
I så fall borde väl en loop vara enklast där du går igenom alla ID:n i din array tills du hittar rätt, och då sparar du positionen och hoppar ut ur arrayen.

Mattias NordinMedlem sedan dec. 20051 056 inlägg
#3

Tänker mig något liknande

SELECT * FROM T_bild_register
while not rs.eof
rowCounter = rowCounter +1
if varMyDbId = T_bild_register.id then
arrayPositionNum = rowCounter
end if
rs.movenext
wend

Är detta rätt sätt att tänka eller kan man lösa det med en SQL fråga?

LedelMedlem sedan dec. 2004736 inlägg
#4

Det verkar vara det mest smidiga sätt, då man inte (tror jag;)) kan få ut positionen på ett visst värde i sitt rs med SQL.
Och om du sätter arrayPos...Num till -1 innan du börjar kan du ändra
while not rs.eof
till
while (not rs.eof) and (arrayPos...Num = -1)
Vilket gör att du slutar loopa när du hittat ID, för att slippa gå igenom rader i onödan.

Mattias NordinMedlem sedan dec. 20051 056 inlägg
#5

Nice. Tack :)

138 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)