webForumDet fria alternativet

dynamisk array

12 svar · 403 visningar · startad av CatZ

CatZMedlem sedan jan. 20022 440 inlägg
#1

Hur ska jag bära mig åt för att tilldela följande värden dynamiskt?

arrLank = Array("<a href=kalender_stor.asp?id=" & iId & ">" & iTitel & "</a>")

Alltså för varje iId och iTitel som finns i databasen ska det skrivas till arrayen.... hur gör man ?

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Man använder metoden getrows

set rs = connect.execute(query)
if not rs.eof then
   arr = rs.getrows()
'
end if

Då får du en två-dimensionell array med alla poster som returneras från selectfrågan.

@ndersMedlem sedan juni 200032 969 inlägg
#3

Du kan också använda en vanlig array, som du dynamiskt ökar storleken på i din loop. Exempel:

dim varArray(0)
intCounter=0
while not rs.eof
     intCounter = intCounter + 1
     Redim Preserve varArray(uBound(varArray)+1)
     varArray (i) = rs("fältet")
     rs.movenext
wend

När du sedan loopar ut din array, kan du börja på index 1, eftersom ovanstående kod lämnar första platsen tom.

Mvh,

CatZMedlem sedan jan. 20022 440 inlägg
#4

Ska testa båda förslagen några gånger för att lära mig ;) tack men LarsG hur skriver jag sedan ut informationen då ?

LarsGMedlem sedan dec. 200012 464 inlägg
#5
rezponze.write arr(0,0) 'första kolumnen i första raden
rezponze.write arr(1,1) 'andra kolumnen i andra raden
Jörgen HPMedlem sedan feb. 20012 412 inlägg
#6

rezponze.write

Är rezponze ett nytt objekt för senaste skriptmotorn :q §e

CatZMedlem sedan jan. 20022 440 inlägg
#7

Aha, så du menar att jag ska plocka ut första och sista posten med LBound och UBound och sedan göra en loop på det då typ

Dim strSQL
	strSQL = " SELECT *"_
	& " FROM Kalender"
	set rs = dbcom.Execute(strSQL)
			
Dim arrLank, iFirstRec, iSistRec, iFirstFalt, iSistFalt
	If Not rs.EOF Then
		arrLank = rs.getrows()
		iFirstRec = LBound(arrLank, 2)
		iSistRec = UBound(arrLank, 2)
		iFirstFalt = LBound(arrLank, 1)
		iSistFalt = UBound(arrLank, 1)
	End If

For I = iFirstRec To iSistRec
	response.write "<br>"
	For J = iFirstFalt To iSistFalt
		Response.Write arrLank(J, I) & vbcr
	Next
	response.write "<br>"
Next

Då ska vi se om jag lyckas plocka ut bara de delar jag behöver i min söta lilla loop ;)

CatZMedlem sedan jan. 20022 440 inlägg
#8

Det fungerar inte riktigt som det ska x( @nders? hur menar du med skriva ut så kan jag starta på 1 ?

@ndersMedlem sedan juni 200032 969 inlägg
#9
for i = 1 to ubound(varArray)
    response.write varArray(i)
next

Någonting sånt.

CatZMedlem sedan jan. 20022 440 inlägg
#10

grmbl jag har alltid varit värdelös på matte och formler :x

CatZMedlem sedan jan. 20022 440 inlägg
#11

Feltyp:
Körningsfel i Microsoft VBScript (0x800A000A)
Matrisen är fast eller tillfälligt låst.
/TMPfo0bq1rj2k.asp, line 77

@ndersMedlem sedan juni 200032 969 inlägg
#12

Kod?

CatZMedlem sedan jan. 20022 440 inlägg
#13

Alla mina problem härrör från att jag skrivit order by fel fältnamn Så nu ska jag nog inte ha några problem §e

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