Jag sitter med en array som jag inte får att fungera. Jag har testat att skriva ut SQL-satsen samt det första recodsetet så jag vet att jag verkligen får ett värde på EUser. Ändå får jag felmeddelandet "Subscript out of range" på raden där Response.Write ligger. Jag börjar fundera om arrayen på något sätt kan ha blivit multidimensionell, kan jag kontrollera det på något vis? Eller vad kan annars vara fel?
SQL2 = "SELECT EUser FROM EInfo WHERE ERate = 1 order by EUser"
Set RS2 = Connection.Execute(SQL2)
Dim arrRusers
If Not RS2.EOF Then
arrRusers = RS2.getrows()
End If
Response.Write arrRusers(0)
Första parametern är kolumnens position i SELECT-satsen, andra parametern är raden.
T.ex
Set rs = Conn.Execute("SELECT UserID,FirstName,LastName FROM Users")
Dim arrUsers
arrUsers = rs.GetRows()
rs.Close
Set rs = Nothing
Response.Write arrUsers(1,0) & " " & arrUsers(2,0) ' Namnet på första raden
Response.Write arrUsers(0,3) ' UserID på fjärde raden
Ok, eftersom jag bara hade ett värde förutsatte jag att den automatiskt blev endimensionell. Men då blir den alltså tvådimensionell med endast en kolumn?
Eller tänker jag helt galet nu? Kunde inte min array "lika gärna" varit endimensionell?
Det hade varit helgalet om den automatiskt blivit endimensionell, eftersom man då behöver skriva om ASP-koden om SQL-frågan returnerar fler än 1 rad.
Ok, då har jag nog inte riktigt förstått vad en endim är. Trodde att om jag fick ut 10 olika usernames, så var det en endim variabel, eftersom jag bara har en variabel (username). Jag orkar inte tänka på detta nu, för jag har iaf förstått hur tvådim fungerar :)
Tack!
268 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849