webForumDet fria alternativet
Logga in / Bli medlem

problem med array

ASP

9 svar · 260 visningar · startad av eriks

Medlem sedan apr. 20011 418 inlägg
Trådstart#1

Hej! Jag vill att alla namn som finns i databasen ska radas upp efter varandra, ett visst antal gånger på sidan. Namnen ska hämtas från en databas, men databashämtningen behövs bara göras en gång. Lukaspojken och Anders hjälpte mig för en tid sedan att göra en array för att lösa detta (tack så väldigt mycket) och jag har försökt, men inte lyckats (jag kan ingenting om arrayer). Detta ser säkert heltokigt ut, men varför får jag felmeddelandet "Objektet stöder inte egenskapen eller metoden.: 'EOF'"?

SQLStmt = "select distinct Namn from Users order by namn"
RS = Connection.Execute(SQLStmt)

ArrRS = Connection.Execute(SQLStmt).getrows()

For a = 0 to ubound(ArrRS,2)

Do Until RS.EOF
Response.Write RS("Namn") & "<BR>"
RS.MoveNext
Loop

Tack! /Erik

Medlem sedan juni 20019 024 inlägg
#2

SQLStmt = "select distinct Namn from Users order by namn"
RS = Connection.Execute(SQLStmt)

ArrRS = Connection.Execute(SQLStmt).getrows()

For a = 0 to ubound(ArrRS,2)

Do Until ArrRS.EOF
Response.Write RS("Namn") & "<BR>"
ArrRS.MoveNext
Loop

[r]Glömde sista ArrRs där...[/r]

Medlem sedan mars 20002 836 inlägg
#3

Du får detta felmeddelande då det inte blir ett recordset av hämtningen med GetRows utan en array.
Testa denna kod:

SQLStmt = "select distinct Namn from Users order by namn"
Set RS = Connection.Execute(SQLStmt)
	If Not RS.EOF Then
		ArrRS = RS.getrows()
	End If
Set RS = Nothing
Connection.Close
Set Connection = Nothing

'## -- denna kod kan du köra vart du vill på sidan
'##    där du vill printa ut alla namn --
For I = 0 To UBound(ArrRS,2)
	strNamn = ArrRS(0,I)

	Response.Write strNamn & "<BR>"
Next

cya,
PatrikB

Medlem sedan juni 20019 024 inlägg
#4

...inte blir ett recordset av hämtningen med GetRows utan en array

Givetvis... ;)

Medlem sedan apr. 20011 418 inlägg
#5

tack så mycket, det fungerade precis som jag ville.

En smärre ändring bara... om jag vill ha med efternamn också, jag har testat att ändra:
SQLStmt = "select distinct Namn, Efternamn from Users order by namn"
och även ändra så det både står:
strNamn = ArrRS(0,I)
strEfternamn = ArrRS(0,I)
och sist:

Response.Write strNamn & "<BR>" & strEfternamn

Jag får bara ut två rader av förnamnet. Vad mer ska jag ändra, något i ArrRS(0,I) kanske, jag fattar inte vad det betyder.

Tack! /Erik

Medlem sedan dec. 200012 464 inlägg
#6
strEfternamn = ArrRS([b]1[/b],I)
Medlem sedan apr. 20011 418 inlägg
#7

tack... varför gör man så?

Medlem sedan dec. 19996 721 inlägg
#8

ArrRS(1,I) innehåller värdet från den 2:a kolumnen i den (I+1):e raden i arrayen. Numreringen börjar på 0, så det är därför det blir så.

Om ArrRS ser ut så här:

a b c
1 2 3
4 6 4

så är ArrRS(0,0)=a och ArrRS(1,2)=6

Medlem sedan okt. 20005 273 inlägg
Medlem sedan dec. 19998 577 inlägg
#10

jobbigt bra vide

Tackar :D

261 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)