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 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.
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 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.