webForumDet fria alternativet

array

7 svar · 295 visningar · startad av crazyl

crazylMedlem sedan jan. 200232 inlägg
#1

Behöver lite hjälp...är inte så säker på asp?!
Jag vill lägga till posterna ur en tabell till en array. Vet inte riktigt hur jag ska bära mig åt. Har denna kod:

getword = "SELECT seek FROM image_tbl WHERE word = '"& Request.Form("sokord")&"'"

Set RS=dbconn.Execute(getword)

If RS.EOF Then
%>
<script language="javascript">
window.alert("inga träffar!");
</script>
<%
Else
Do until RS.EOF
Dim Arr
Arr = RS.GetRows()
RS.MoveNext
Loop
End If

Får detta fel på raden RS.MoveNext:

Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats. Den begärda åtgärden kräver en aktuell post.

Tacksam för svar...

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Getrows hämtar alla poster, så du behöver ingen loop.

getword = "SELECT seek FROM image_tbl WHERE word = '"& Request.Form("sokord")&"'" 

Set RS=dbconn.Execute(getword) 

If RS.EOF Then 
%> 
<script language="javascript"> 
window.alert("inga träffar!"); 
</script> 
<% 
Else 
Arr = RS.GetRows() 
End If
PatrikBMedlem sedan mars 20002 836 inlägg
#3

Dessa rader:

<% 
Else 
Do until RS.EOF 
Dim Arr 
Arr = RS.GetRows() 
RS.MoveNext 
Loop

Ska se ut så här:

<% 
Else 
Dim Arr 
Arr = RS.GetRows()

dvs, du behöver inte loopa igenom recordsetet. Det kan du stänga och "förstöra" eftersom du har sparat hela det i arrayen.

Arrayen loopar du så här:

<%
If IsArray(Arr) Then
	For I = 0 TO UBound(Arr,2)
		strField1 = Arr(0,I)
		strField2 = Arr(1,I)
		strFieldn = Arr(n,I)

		'## -- visa resultatet --
	Next
Else
	Response.Write "Inget hittades."
End
%>

cya,
PatrikB

luciferMedlem sedan feb. 200218 inlägg
#4

har nu fixat koden till :

getword = "SELECT seek FROM image_tbl WHERE word = '"& Request.Form("sokord")&"'" 
Set RS=dbconn.Execute(getword) 

	If RS.EOF Then 
	%> 
	<script language="javascript"> 
	window.alert("inga träffar!"); 
	</script> 
	<% 
	Else 
		Arr = RS.GetRows()
	End If 

	If IsArray(Arr) Then
		For I = 0 TO UBound(Arr,2)s
		strField1 = Arr(0,I)
		strField2 = Arr(1,I)
		strFieldn = Arr(n,I)'## -- visa resultatet --
		Next
		Else
		Response.Write "Inget hittades."
	End If

får fel mezz(Felaktigt matrisindex: '[number: 1]') :
strField2 = Arr(1,I)
varför ä denna matris fel???

LarsGMedlem sedan dec. 200012 464 inlägg
#5

I och med att du bara hämtar en kolumn så har arrayen bara en kolumn

If IsArray(Arr) Then
	For I = 0 TO UBound(Arr,2)
		strField1 = Arr(0,I)
'
'Gör något med strfield1
'
	Next
End If
EclipseMedlem sedan juli 20003 825 inlägg
#6
strFieldn = Arr(n,I)'## -- visa resultatet --

Var kommer n i från? Det borde inte fungera...??

juventus1Medlem sedan dec. 2000399 inlägg
#7

n är bara ett valfritt positivt tal. Ofta skriver man bara 1,2,3...n

PatrikBMedlem sedan mars 20002 836 inlägg
#8

jag tänkte bara vara "lite pedagogisk".
strField1 = Arr(1,I)
strFieldn = Arr(n,I)

"trodde" att "ni" skulle förstå det. :(

sorry, my mistake

cya,
PatrikB

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